【发布时间】:2016-10-13 20:41:11
【问题描述】:
我在几篇文章(比如https://forums.developer.apple.com/thread/7598)中读到了这种设置
application.applicationIconBadgeNumber = -1
在applicationDidBecomeActive 或applicationWillEnterForeground 上,我可以在不从通知中心删除通知的情况下清除徽章编号。当我将application.applicationIconBadgeNumber 设置为负数(如-1)时,它会清除来自Notification Center 的所有通知。还有其他方法可以在不删除notifications的情况下清除徽章编号吗?
【问题讨论】:
-
当您将其设置为像 1 这样的正值并在通知中心有 5 个通知时会发生什么。
-
这是一个很好的问题。实际上无法控制通知中心中有多少通知。您可以手动计算它们,但在某些情况下,您会遇到刚才描述的图标徽章显示数字 1 的错误,但通知中心实际上有 5 个。但是,在我的应用程序中,只需清除图标徽章编号并将通知留在通知中心以供用户需要时使用。
-
是的,我并不是说这是一种解决方案。只是想知道在这种情况下会发生什么。通知会被清除还是只保留 1 ?另外,由于您正在处理推送通知,我相信-您不能将徽章编号设置为 0 吗?
-
不错!我在有效负载中将徽章编号设置为 0,通知仍保留在通知中心,但图标徽章从未出现。有趣的!但是,如果我想显示图标徽章,然后在用户打开应用程序时将其清除怎么办?不可能吧?
-
我猜这已经在 iOS 10 中引入了。设置 applicationIconBadgeNumber = 0 也无济于事