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];
}
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.