我在我的应用中使用 UILocalNotification
。有时我安排重复通知,有时安排不重复通知。每当通知触发时,我想增加应用程序角标(Badge)编号。所以我这样做 localNotification.applicationIconBadgeNumber = badNumber;
这工作正常...除非通知是重复通知,因为如果我之前设置了角标(Badge)编号为 1 的重复通知,那么我设置了另一个非-重复通知,角标(Badge)编号为 2。
流程是这样的:
Notification 1 fires (first time) - Badge number = 1 (OK!)
Notification 2 fires - Badge number = 2 (OK!)
Notification 1 fires (repeating) - Badge number = 1 (ERROR)
如您所知,当通知 1 再次触发时,我仍然希望应用角标(Badge)编号显示 2(对于 2 个错过的通知)。我可以实现这种行为吗?或者有什么明显的事情我错过了?对我来说,重复通知的更合乎逻辑的角标(Badge)行为是,它第一次设置角标(Badge)编号,并且在随后的时间里,它不会更改角标(Badge)编号。
最佳答案
简单:对不起,戴夫。恐怕我做不到。
使用 UILocalNotification
时,无法让角标(Badge)计数保持在您希望的“最高”计数。
角标(Badge)计数将始终设置为您在安排通知时设置的值(正如您所知)。您不能假设用户每当收到通知时都会打开您的应用程序,因此在每次应用程序启动时更新已安排的通知(重复和非重复)的角标(Badge)计数肯定不起作用,也不是一个选项。
您可以做到这一点的唯一方法是使用推送通知,跟踪服务器上的所有“未读”通知,并在用户启动您的应用程序后立即在服务器上将通知标记为“已读”。
关于iphone - UILocalNotification 应用角标(Badge)编号重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14243828/