清除通知徽章而不删除通知

时间:2014-05-15 09:56:34

标签: ios objective-c push-notification

在我的应用中,我收到徽章编号设置为1的推送通知。 当应用程序启动时,它应该将徽章数设置为0,所以我正在使用:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];

它可以工作,但它也会从通知中心删除所有通知 有没有办法在不删除通知的情况下清除徽章?

3 个答案:

答案 0 :(得分:10)

根据这个主题:

How to clear badge number while preserving notification center

设置:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:-1];

应该这样做。

答案 1 :(得分:7)

使用iOS9直接将徽章设置为否定仍会清除通知。您必须使用负的badgenumber触发空的UILocalNotification来实现此目的。

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

答案 2 :(得分:2)

@feb for ios 9+你需要设置0而不是-1,因为你需要添加版本条件

    if #available(iOS 9.0, *) {
        UIApplication.shared.applicationIconBadgeNumber = 0
    }else{
        UIApplication.sharedApplication().applicationIconBadgeNumber = -1
    }