0

在我的应用程序中,我已经注册了远程通知。当用户发布某些内容时,每个用户都会收到通知。我正在尝试计算到达的通知数量并更新图标徽章编号。

比如一个用户收到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];
}
4

1 回答 1

3

在发送通知之前,您需要确定服务器上的徽章计数。在应用程序收到通知时,确定正确的号码为时已晚,因为通知中的号码会立即覆盖应用程序设置的号码。

于 2013-02-16T13:43:00.370 回答