【发布时间】:2013-02-01 09:10:50
【问题描述】:
在我的应用程序中,我已注册远程通知。当用户发布某些内容时,每个用户都会收到通知。我正在尝试计算到达的通知数量并更新图标徽章编号。
比如一个用户收到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];
}
【问题讨论】:
-
您是从服务器获取徽章计数还是在本地计算?
-
但我不需要一个精确的数字,只是告诉用户有东西可以看
-
@user2014474 如果您不需要确切的数字,请在通知 JSON 有效负载中设置
"badge": 1。这样,每当用户收到通知时,您的应用图标上就会出现一个“1”徽章。在您的应用委托中使用application.applicationIconBadgeNumber = 0删除徽章。 -
你能给我一些示例代码吗?用什么方法设置?
-
重点是我使用的是 Socialize api,所以我无法控制通知及其呈现方式。我可以在我的应用委托中设置此选项吗?