反応ネイティブ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);
}
プッシュ通知のペイロードにバッジフィールドを設定する必要があります。 https://developer.Apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification
計算サーバー側で行う必要があります。