Ios 通知到达时更改应用程序图标徽章

Ios 通知到达时更改应用程序图标徽章,ios,xcode,Ios,Xcode,在我的应用程序中,我注册了远程通知。当用户发布某些内容时,每个用户都会收到通知。我正在尝试计算到达的通知数量并更新图标徽章编号 例如,如果用户收到3个通知,则徽章编号必须变为3,并且当用户打开应用程序时,徽章编号返回到0。但我不知道用什么方法来设置徽章。我试过这个: - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { application

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

例如,如果用户收到3个通知,则徽章编号必须变为3,并且当用户打开应用程序时,徽章编号返回到0。但我不知道用什么方法来设置徽章。我试过这个:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
application.applicationIconBadgeNumber = 2;    
// Handle Socialize notification at foreground
[self handleNotification:userInfo];
}
问题是,如果我收到通知,当我实际打开应用程序(将其置于前台)时,徽章会设置数字2,而不是当我收到通知时。我怎样才能解决这个问题? 谢谢你的帮助

编辑:


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

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

您是从服务器获取徽章计数还是在本地进行计数?但我不需要精确的数字,但只是告诉用户有东西要做see@user2014474如果不需要确切数字,请在通知JSON负载中设置
“badge”:1
。这样,每当用户收到通知时,应用程序图标上就会出现一个“1”标记。在你的应用程序中,代表使用
application.applicationBadgeNumber=0
删除徽章。你能给我看一些示例代码吗?我应该用哪种方法设置它?关键是我使用的是社交api,所以我不控制通知及其呈现方式。我可以在我的app delegate中设置此选项吗?您是从服务器获取徽章计数还是在本地进行计数?但我不需要精确的数字,只需要告诉用户有东西要做see@user2014474如果不需要确切数字,请在通知JSON负载中设置
“badge”:1
。这样,每当用户收到通知时,应用程序图标上就会出现一个“1”标记。在你的应用程序中,代表使用
application.applicationBadgeNumber=0
删除徽章。你能给我看一些示例代码吗?我应该用哪种方法设置它?关键是我使用的是社交api,所以我不控制通知及其呈现方式。我可以在我的应用程序代理中设置此选项吗?我不需要精确的数字,但只要告诉用户在应用程序打开时有东西可看,即使用户没有真正看到更新的内容,徽章也会归零。我不需要精确的数字,但只是告诉用户,当应用程序打开时,有东西要看,即使用户没有真正看到更新的内容,徽章也会归零
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
[UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo objectForKey:@"aps"] objectForKey: @"1"] intValue];
// Handle Socialize notification at foreground
[self handleNotification:userInfo];
}