web-dev-qa-db-ja.com

アプリの非アクティブモードで通知を受信して​​いるときに、メインアプリアイコンでバッジを増分したい

反応ネイティブiOSのチャットアプリに取り組んでいます。通知を受け取ったとき、アプリが強制終了されたとき、またはユーザーによって強制終了されたときに、メインアプリアイコンにバッジを追加したいと思います。アプリがバックグラウンドモードの場合にうまく機能します。ただし、アプリが非アクティブの場合、didReceiveRemoteNotificationメソッドは呼び出されません。これについて何か考えはありますか? AppDelegateのdidReceiveRemoteNotificationメソッド内にコードを追加しました。

AppDelegateファイルに次のコードセットを追加しました

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
      [RNNotifications didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
    }

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
      [RNNotifications didFailToRegisterForRemoteNotificationsWithError:error];
    }

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    NSLog(@"APPDELEGATE: didReceiveRemoteNotification:fetchCompletionHandler %@", userInfo);
  int badge = (int) application.applicationIconBadgeNumber;
  if ( application.applicationState == UIApplicationStateInactive ) {
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:badge+1];
  }
  else if(application.applicationState == UIApplicationStateBackground) {
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:badge+1];
  }
  else if(application.applicationState == UIApplicationStateActive) {
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:badge+1];
  }
  completionHandler(UIBackgroundFetchResultNewData);
}
9
Beu

プッシュ通知のペイロードにバッジフィールドを設定する必要があります。 https://developer.Apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification

計算サーバー側で行う必要があります。

0
INDAPP