在我的应用程序中,我已注册远程通知。当用户发布某些内容时,每个用户都会收到通知。我正在尝试计算到达的通知数量并更新图标徽章编号。
例如,如果用户收到3个通知,则徽章编号必须为3,当用户打开应用程序时,徽章编号将返回0.但我不知道设置徽章的方法。我试过这个:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
application.applicationIconBadgeNumber = 2;
// Handle Socialize notification at foreground
[self handleNotification:userInfo];
}
问题在于,如果我收到通知,那么当我实际打开应用程序(将其带到前台)时,徽章会设置数字2,而不是在我收到通知时。我怎么解决这个问题? 谢谢你的帮助。
编辑:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
[UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo objectForKey:@"aps"] objectForKey: @"1"] intValue];
// Handle Socialize notification at foreground
[self handleNotification:userInfo];
}
答案 0 :(得分:3)
在发送通知之前,您需要确定服务器上的徽章计数。在应用程序收到通知时,确定正确的号码为时已晚,因为通知中的号码会立即覆盖应用程序设置的号码。