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

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

例如,如果用户收到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]; } 

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