0
我试图通过推送通知远程更新徽章值。 一切工作正常,但当应用程序打开时,我得到一个空的警报(包含我的应用程序名称和关闭按钮)。当应用程序打开时更新徽章而不提示
我在苹果的文档中看到silent notifications,但似乎即使在通知有效载荷中指定content-available:1,有效载荷也不能包含通知静音的标志。
正在更新徽章而未收到提醒吗?
我试图通过推送通知远程更新徽章值。 一切工作正常,但当应用程序打开时,我得到一个空的警报(包含我的应用程序名称和关闭按钮)。当应用程序打开时更新徽章而不提示
我在苹果的文档中看到silent notifications,但似乎即使在通知有效载荷中指定content-available:1,有效载荷也不能包含通知静音的标志。
正在更新徽章而未收到提醒吗?
如果您正在使用静默推送通知,则不能在aps
字典中包含badge
密钥,因此无法使用静默推送直接更新徽章。
您可以包括在aps
字典自己的钥匙和价值观,这本词典可以在didReceiveRemoteNotification:fetchCompletionHandler
UIApplicationDelegate
功能。
在此功能,您可以从aps
字典中提取自己的“徽章”键,并使用这个直接使用UIApplication
财产[applicationIconBadgeNumber
] [1]
UIApplication.shared.applicationIconBadgeNumber = someValue
喜欢的东西更新证件号码:
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
}
}
}
是的,但我也希望徽标在执行服务器端操作时更新其值。 – pepollet
对不起。我误解了。看到我的更新 – Paulw11
谢谢我理解这个解决方案,并将最终使用它。为了澄清默认的ios行为,如果aps字典中设置了徽章值,无论应用何时打开,都会显示一条警告消息。 – pepollet