Changing application icon badge when notification

2019-08-30 11:20发布

in my application I have registered for remote notification. when a user publishes some content, every user receives a notification. I am trying to count the number of notifications that arrives and update the icon badge number.

If for example a user receives 3 notifications, the badge number must become 3, and when the user opens the app, the badge number goes back to 0. But I don't knw in which method to set the badge. I have tried this:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
application.applicationIconBadgeNumber = 2;    
// Handle Socialize notification at foreground
[self handleNotification:userInfo];
}

The problem with this is that the badge sets the number 2 when I actually open the app (bring it to foreground) if I have received notifications, and not when I receive the notification. How can I solve this? Thanks for any help.

EDIT:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
[UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo objectForKey:@"aps"] objectForKey: @"1"] intValue];
// Handle Socialize notification at foreground
[self handleNotification:userInfo];
}

标签: ios xcode
1条回答
手持菜刀,她持情操
2楼-- · 2019-08-30 11:43

You need to determine the badge count on your server before you send the notification. At the time the app received the notification it is too late to determine the correct number since the number from the notification immediately overwrites the number the app set.

查看更多
登录 后发表回答