如何在保留通知中心的同时清除徽章编号

Posted

技术标签:

【中文标题】如何在保留通知中心的同时清除徽章编号【英文标题】:How to clear badge number while preserving notification center 【发布时间】:2013-05-14 03:01:00 【问题描述】:

我使用[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0] 清除徽章编号。它工作正常,但同时删除了远程通知。

还有许多其他问题需要清除通知中心,但我不想清除它们。我只想在保留通知的同时清除徽章数量。

有什么办法可以做到吗?

【问题讨论】:

【参考方案1】:

解决此问题的一种巧妙方法是将徽章计数设置为负值。负值不会显示在主屏幕上,并且由于它们不为零,因此不会导致通知中心被清除。

试试[[UIApplication sharedApplication] setApplicationIconBadgeNumber:-1],看看它是否会产生你想要的面向用户的行为。

【讨论】:

奇怪的是,这不再适合我了……不知道为什么,我以为它在几周前就可以工作了。 在我的应用程序中奇怪的是,在设置为 -1 后不久检查徽章获取器会导致 0。也许将值更改为 0 的任何东西都会触发我设置它时发生的相同通知中心清除到 0...【参考方案2】:

据我所知,将badge值设置为0是不可能的。应用程序的badge值只有在大于0时才会显示。否则(如果为0),它将被ios隐藏.

【讨论】:

抱歉含糊不清。我想在保留通知中心的同时清除徽章值。【参考方案3】:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:-1]

它不适合我。

但我试试这个没问题。

UILocalNotification *notification=[[UILocalNotification alloc]init];
notification.applicationIconBadgeNumber=-1;
[[UIApplication sharedApplication] presentLocalNotificationNow:notification];

【讨论】:

以上是关于如何在保留通知中心的同时清除徽章编号的主要内容,如果未能解决你的问题,请参考以下文章

swift 本地通知弹出,没有徽章

iOS:徽章计数器与通知中心

ios - 应用程序关闭时本地通知不更新徽章编号

应用打开后从通知中心移除推送

清除徽章图标而不清除通知

为啥通知会自动从 iOS 通知中心移除?