I have developed server side application to maintain the badge number as increment or decrement after receiving new notification and delete after seeing notification it works fi
It will show until you set it to zero and you can do it with the following code:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]
EDIT:
It is more common to set the badge number as you receive the notification, in either application:didReceiveRemoteNotification:
or application:didFinishLaunchingWithOptions:
methods of your UIApplicationDelegate
class.
You can read more about it in the Local and Push Notification Programming Guide
If you want to change the icon badge automatically use the following code.
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
application.applicationIconBadgeNumber = 0;
NSLog(@"userInfo %@",userInfo);
for (id key in userInfo) {
NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
}
[application setApplicationIconBadgeNumber:[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue]];
NSLog(@"Badge %d",[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue]);
}
We also need to change the php file. So we can get the change the icon badge automatically
// Create the payload body
$body['aps'] = array(
'alert' => $message,
'sound' => 'default',
'id' => '135',
'badge' => 8
);