【XCode】RemoteNotificationを受信し、バナーをタップしたときのイベント

UIApplicationDelegateの

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(nonnull NSDictionary *)userInfo fetchCompletionHandler:(nonnull void (^)(UIBackgroundFetchResult))completionHandler


基本的にはこのメソッドのイベントが発生する

しかし、これだけではアプリがフォアグラウンドになっていると通知バナーがでない(メソッドは実行される)

フォアグラウンド対策のために


UNUserNotificationCenterDelegateの

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


これを実装すると

フォアグラウンド時は上記が呼ばれ、最初のメソッドは実行されなくなる

バックグラウンド時は最初のメソッドが実行される


んだけどもあわせて

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


これを実装していると、最初に説明したメソッドが一切処理されなくなる


気をつけよう


この記事へのコメント