ios - 如何重置角标(Badge)应用程序图标数量?

标签 ios swift3 apple-push-notifications cloudkit

我将推送通知集成到了 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/

相关文章:

ios - 使用开发证书解析测试推送通知

java - 获取 javax.net.ssl.SSLHandshakeException : Received fatal alert: handshake_failure Error

ios - 无法构建包含 Objective-C Tesseract 库的 Swift 应用程序

ios - 转换 JSON 嵌套对象

swift3 - 没有 '+' 候选产生预期的上下文结果类型 'NSNumber?' Swift 3

xcode - NSImages 到 PDF 并在 Swift 中合并它们

ios - Coredata 执行 Group By sqlite 查询 - iOS SDK

ios - NSDictionary 类型的非可选表达式用于检查可选值。错误

ios - Twilio 平台上的回声消除

ios - 是否可以通过远程通知的方式打开iOS应用?