如何从通知服务扩展访问应用程序的徽章计数

Posted

技术标签:

【中文标题】如何从通知服务扩展访问应用程序的徽章计数【英文标题】:How access app's badge count from Notification Service Extension 【发布时间】:2018-10-11 13:21:07 【问题描述】:

我想在应用收到任何推送通知时增加应用的徽章计数,即使应用已退出。徽章计数不在服务器端维护。所以我需要在收到每个推送通知时将应用程序徽章计数增加 1。 当应用程序处于退出状态时修改推送通知有效负载的唯一方法是通知服务扩展,但是我们无法从扩展访问 UIApplication 实例来获取应用程序的当前徽章计数。

有没有办法从通知扩展中获取应用徽章计数

或者有没有其他方法可以做到这一点?

请帮我解决这个问题。谢谢!

【问题讨论】:

【参考方案1】:

没有 api 可以让您这样做,但您可以通过观察应用程序内用户默认键的环更改(您将在扩展程序中设置访问组套件默认值)并将徽章更改为你需要

【讨论】:

【参考方案2】:

您可以通过设置给定请求的标记属性从通知服务扩展设置应用标记...

bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
bestAttemptContent = <current value +1>

如果您无法计算当前值,您可以将其存储在 UserDefaults 中

【讨论】:

以上是关于如何从通知服务扩展访问应用程序的徽章计数的主要内容,如果未能解决你的问题,请参考以下文章

在 ios7 中更新推送通知的徽章计数

在 ios7 中更新推送通知的徽章计数

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

如何在 iOS 10 中为推送通知设置徽章计数?

收到通知时如何控制应用图标徽章的计数? [复制]

iPhone:自动增加徽章计数器[重复]