Domanda

In my app, I'm receiving push notifications with badge number set to one. When app will start, it should set badges count to 0, so I'm using:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];

And it works, but also it removes all notifications from notifications center.
Is there a way to clear badges without removing notifications?

È stato utile?

Soluzione

According to this topic:

How to clear badge number while preserving notification center

setting:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:-1];

should do the trick.

Altri suggerimenti

With iOS9 directly setting badge to negative still clears notifications. You must fire empty UILocalNotification with negative badgenumber to achieve this.

let ln = UILocalNotification()
ln.applicationIconBadgeNumber = -1
UIApplication.sharedApplication().presentLocalNotificationNow(ln)

@feb for ios 9+ you need to set 0 not -1 for that you need to add version condition

    if #available(iOS 9.0, *) {
        UIApplication.shared.applicationIconBadgeNumber = 0
    }else{
        UIApplication.sharedApplication().applicationIconBadgeNumber = -1
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top