私のアプリは、ユーザーへのリモートプッシュ通知を許可します。ユーザーがプッシュ通知をタップしたときに特定のView Controllerで開くことができるようにするにはどうすればよいですか?受信したプッシュ通知に応じて、アプリを開いて特定のView Controllerにナビゲートしたい。
これを行うには、アプリを開く各identifier
にViewController
を設定し、payload
の_application:didFinishLaunchingWithOptions:
_のlaunchOptions
引数でAppDelegate
を確認する必要があります。これを行う手順は次のとおりです。
PFPush
で、setData
を使用して、識別子にキーをペイロードに追加します:notification.setData(["alert":"your notification string", "identifier":"firstController"])
各identifier
を選択し、次の値を変更して、ViewController
を設定します
payload
のキーidentifier
にストーリーボード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
}
_
AppDelegateでは、デリゲートコールバック「didFinishLoading」または「didReceivePushNotification」メソッドを取得します(アプリがバックグラウンドまたはフォアグラウンドにあることに基づいて)。そのメソッドでは、最上位のView Controllerのインスタンスを取得してから、表示および表示する特定のView Controllerを作成/最上位のView Controllerからプッシュします。
UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (notification)
{
[self application:application didReceiveRemoteNotification:(NSDictionary*)notification];
}