Removing badge from iOS app icon

IosIphoneBadge

Ios Problem Overview


In this application that I'm trying to make, I use push notifications. This part works just fine. When I send a notification I also add a badge to the app icon. The problem is when I lunch the application it should disappear again, but it does not.

-(IBAction)Push{
	
    NSMutableDictionary *data = [NSMutableDictionary dictionary];
    
    [data setObject:@"Numfeud: Troels made a move!" forKey:@"alert"];
    
    [data setObject:[NSNumber numberWithInt:1] forKey:@"badge"];
        
    [data setObject:@"bar" forKey:@"foo"];
    
    [PFPush sendPushDataToChannelInBackground:@"GameChannel2" withData:data];
}

In the application didFinishLaunchingWithOptions I try to set badge to 0 in this way:

[UIApplication sharedApplication].applicationIconBadgeNumber = 0;

How can I clear the application icon badge?

Ios Solutions


Solution 1 - Ios

If your app becomes active again and is still in the background you should reset the badge count in -applicationDidBecomeActive: as well:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    application.applicationIconBadgeNumber = 0;
}

If your app is still running in the background -application:didFinishLaunchingWithOptions: won't be called.

Solution 2 - Ios

Likely, -application:didFinishLaunchingWithOptions: is not being called, because your app is still running in the background. In order to remove the badge count when the app is launched from the background you'll have to reset the badge number in -applicationWillEnterForeground:, too.

Solution 3 - Ios

In Swift and In AppDelegate

func applicationDidBecomeActive(_ application: UIApplication) {
    application.applicationIconBadgeNumber = 0
}

Solution 4 - Ios

> You can use this codes also.

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    application.applicationIconBadgeNumber = 0;
}

or In a specific ViewController

- (void)awakeFromNib {
   [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
}

Solution 5 - Ios

Maybe call it in applicationWillResignActive (in AppDelegate.m):

-(void)applicationWillResignActive:(UIApplication *)application{
    [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
}

This will help you to clear badge if push come when app is being open. User seeing notification and you clear it, when he press Home Button (once or twice). Also it will be clear if app being closed (clear after user open it).

Here you can see when this method called.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiontharView Question on Stackoverflow
Solution 1 - IosMarkView Answer on Stackoverflow
Solution 2 - IosFabian KreiserView Answer on Stackoverflow
Solution 3 - IosSourabh KumbharView Answer on Stackoverflow
Solution 4 - IoshandiansomView Answer on Stackoverflow
Solution 5 - IosS. MatsepuraView Answer on Stackoverflow