web-dev-qa-db-ja.com

ユーザーがiOSでプッシュ通知をタップすると特定のビューでアプリを開くSwift

私のアプリは、ユーザーへのリモートプッシュ通知を許可します。ユーザーがプッシュ通知をタップしたときに特定のView Controllerで開くことができるようにするにはどうすればよいですか?受信したプッシュ通知に応じて、アプリを開いて特定のView Controllerにナビゲートしたい。

14
mechdon

これを行うには、アプリを開く各identifierViewControllerを設定し、payloadの_application:didFinishLaunchingWithOptions:_のlaunchOptions引数でAppDelegateを確認する必要があります。これを行う手順は次のとおりです。

  1. PFPushで、setDataを使用して、識別子にキーをペイロードに追加します:notification.setData(["alert":"your notification string", "identifier":"firstController"])

  2. identifierを選択し、次の値を変更して、ViewControllerを設定します

Setting the Storyboard ID

  1. プッシュ通知を作成し、payloadのキーidentifierにストーリーボードIDを送信します
  1. Application:didFinishLaunchingWithOptions:でIDを確認します。関数の最後に次を追加します。
_if let payload = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? NSDictionary, identifier = payload["identifier"] as? String {
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyboard.instantiateViewControllerWithIdentifier(identifier)
    window?.rootViewController = vc
}
_
24
kabiroberai

AppDelegateでは、デリゲートコールバック「didFinishLoading」または「didReceivePushNotification」メソッドを取得します(アプリがバックグラウンドまたはフォアグラウンドにあることに基づいて)。そのメソッドでは、最上位のView Controllerのインスタンスを取得してから、表示および表示する特定のView Controllerを作成/最上位のView Controllerからプッシュします。

6
Satyam
 UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
    if (notification)
    {
        [self application:application didReceiveRemoteNotification:(NSDictionary*)notification];
    }
1
iOS Lifee