我正在开发 react-native iOS 中的聊天应用程序。我想在收到通知、应用程序被杀死或用户强制退出时在主应用程序图标上进行标记增量。当应用程序处于后台模式时,它运行良好。但是 didReceiveRemoteNotification 当应用程序处于非事件状态时,不会调用方法。对此有任何想法吗?我在 中添加了代码didReceiveRemoteNotification AppDelegate 的方法。
在 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);
}
最佳答案
您需要创建一个 UNNotificationServiceExtension
当应用程序处于后台/被杀死时处理通知。
这是一个小型应用程序,将在收到通知时执行,并且在将其内容呈现给用户之前编辑其内容的时间有限。
当您在 didReceive(_:withContentHandler:)
中收到通知时委托(delegate)回调你可以修改badge
UNNotificationContent
的值
关于ios - 我想在应用程序的非事件模式下接收通知时在主应用程序图标上增加角标(Badge),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61585292/