我将推送通知集成到了 CloudKit 中,这样 iCloud 中的每次更改都会在我的 iPhone 上弹出通知,并且角标(Badge)应用程序图标编号也会相应地添加一个。但是,当我使用代码时:
application.applicationIconBadgeNumber = 0
要在 applicationDidBecomeActive(_ application: UIApplication)
中重置该数字,我注意到角标(Badge)应用程序图标编号确实消失了,但如果再次出现另一个新通知,该数字将不会从一个开始再次按预期进行,但只需在重置前将原始总数加一即可。因此数量越来越多。我想知道如何解决这个问题?
最佳答案
问题是您的apns负载,它包含的角标(Badge)计数超过1,您还需要重置负载。
当您设置application.applicationIconBadgeNumber = 0
时,它只会在本地重置角标(Badge)计数,而不是在服务器中重置。
解决方案也将重置服务器中用户的角标(Badge)计数。
更新:Apns 有效负载
{
"aps" : {
"alert" : {
"title" : "Push",
"body" : "Hello User"
},
"badge" : 5
}
}
应用程序显示的角标(Badge)计数与上面的 apns 有效负载中相同,您需要从服务器重置上面有效负载中的角标(Badge)值。
希望有帮助。
干杯。
关于ios - 如何重置角标(Badge)应用程序图标数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42720259/