在我的应用中,我收到徽章编号设置为1的推送通知。 当应用程序启动时,它应该将徽章数设置为0,所以我正在使用:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
它可以工作,但它也会从通知中心删除所有通知 有没有办法在不删除通知的情况下清除徽章?
答案 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
}