我正在尝试通过推送通知远程更新徽章值。 一切正常,但当应用程序打开时,我会收到一个空警报(包含我的应用程序名称和关闭按钮)。
我在Apple的文档中读到了silent notifications,但似乎即使在通知有效负载中指定content-available:1,有效负载也不得包含徽章,以使通知保持沉默。
是否在未收到警报的情况下更新徽章?
答案 0 :(得分:0)
如果您使用的是静音推送通知,则无法在aps
词典中加入aps
键,因此您无法通过静音推送直接更新徽章。
您可以在didReceiveRemoteNotification:fetchCompletionHandler
词典中包含您自己的键和值,UIApplicationDelegate
aps
函数中提供了此词典。
在此功能中,您可以提取自己的徽章"来自UIApplication
字典的密钥,并使用此代码直接使用applicationIconBadgeNumber
属性[UIApplication.shared.applicationIconBadgeNumber = someValue
]更新徽章编号[1]
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
if let badgeNumberStr = userInfo["myBadge"] as? String {
if let badgeNumber = Int(badgeNumberStr) {
application.applicationIconBadgeNumber = badgeNumber
}
}
}
类似的东西:
{{1}}