清除applicationIconBadgeNumber不删除,设置 application.applicationIconBadgeNumber = -1
上applicationDidBecomeActive
application.applicationIconBadgeNumber = -1
或applicationWillEnterForeground
,让我来清除徽章数量,而不从移除通知不工作
问题描述:
通知我读过的几篇文章(像这样的https://forums.developer.apple.com/thread/7598)通知中心。当我将application.applicationIconBadgeNumber
设置为负数(如-1)时,它会清除我的所有来自Notification Center
的通知。是否有另一种方法来清除徽章号码而不删除notifications
?清除applicationIconBadgeNumber不删除,设置</p> <pre><code>application.applicationIconBadgeNumber = -1 </code></pre> 上<code>applicationDidBecomeActive</code><p>或<code>applicationWillEnterForeground</code>,让我来清除徽章数量,而不从移除通知不工作
答
将应用程序标记设置为间接使用空本地通知为我工作,但它是一个黑客持久通知托盘中清除应用程序徽章计数。
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];
}
斯威夫特版本
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
当你把它设置为1一样正值,有5个通知符的通知符中心会发生什么。 – Shubhank
这是一个非常好的问题。实际上不能控制通知中心的通知数量。您可以手动计算它们,但在某些情况下,您会发现刚才描述的图标徽章显示数字1的错误,但实际上在通知中心中有5个。 但是,在我的应用程序中,只需清除图标徽章号并将通知留在通知中心以供用户需要时使用。 –
是的,我不是故意说这是一个解决方案。只是想知道在这种情况下会发生什么。通知会被清除还是只剩下最后一个?另外,因为你正在处理推送通知我相信 - 你不能只在其中设置徽章号码为0? – Shubhank