2016-09-28 21 views
0

私はios10スタイルのユーザー通知(UNUserNotificationCenter)をターゲットにしています。これまでに実装したのは...アプリが終了したときにプッシュ通知によるディープリンク

@available(iOS 10.0, *) 
func userNotificationCenter(_ center: UNUserNotificationCenter, 
          didReceive response: UNNotificationResponse, 
          withCompletionHandler completionHandler: @escaping() -> Void) { 
    // ... 
    completionHandler() 
} 

アプリがバックグラウンドであるときにうまくいくのはどれですか。ただし、深いリンクを含むプッシュ通知によってアプリが終了して起動された場合、このdidReceive funcは呼び出されません。

iOS9のプッシュ通知を実装すると、launchOptionsdidFinishLaunchingWithOptionsに検査し、通知を確認してそれに応じて対応すると思われます。これは、launchOptionsの通知がUIApplicationLaunchOptionsRemoteNotificationタイプであり、iOS10スタイルの通知タイプがUNNotificationResponseではないため、iOS10では正しくありません。

UNUserNotificationCenterDelegateを実装していると仮定すると、プッシュ通知を介してアプリを起動する方法をiOS10で確認できますか?

答えて

0

はい、iOS 10の場合は、通知が来ると2つの代理人の方法で遊ぶ必要があります。

1) -(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler{ 

2) -(void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler{ 

アップルのドキュメントによると、アプリがフォアグラウンドにある場合は、最初の方法が便利です。

だから、2番目の方法が役に立ちます。 2番目のメソッドは、アプリがの背景にあるか、またはを閉じたときに呼び出されます。したがって、あなたのアプリが閉じられ、プッシュ通知で開くときに、このメソッドでアクションを設定することができます。

あなたはiOSの10のプッシュ通知について詳細にわかります、私はこの情報があなたのために役立つことを願っています。このAshishkakkad.com

を確認してください。

関連する問題