我已经阅读了几个帖子(比如这一个
https://forums.developer.apple.com/thread/7598)那个设置
application.applicationIconBadgeNumber = -1
在applicationDidBecomeActive或applicationWillEnterForeground上,我可以清除徽章编号,而无需从通知中心删除通知.当我将application.applicationIconBadgeNumber设置为负数(如-1)时,它会清除通知中心的所有通知.是否有其他方法可以在不删除通知的情况下清除徽章编号?
解决方法
使用空的本地通知间接将应用程序徽章设置为-1,但是在清除应用程序徽章计数时,它会在托盘中保留通知.
if(badgeCount == 0) { //set application badge indirectly with UILocalNotification UILocalNotification *ln = [[UILocalNotification alloc]init]; ln.applicationIconBadgeNumber = -1; [[UIApplication sharedApplication] presentLocalNotificationNow:ln]; } else { [[UIApplication sharedApplication] setApplicationIconBadgeNumber:badgeCount]; }
Swift版本
if badgeCount == 0 { //set application badge indirectly with UILocalNotification var ln = UILocalNotification() ln.applicationIconBadgeNumber = -1 UIApplication.sharedApplication().presentLocalNotificationNow(ln) } else { UIApplication.sharedApplication().applicationIconBadgeNumber = badgeCount }
在iOS 9和10上测试的方法.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。