我有一个使用解析实现推送通知的应用。
我在用户打开应用时清除徽章图标时遇到一些问题。
我的appDelegate didFinishLaunchingWithOptions和appBecomeActive中有以下代码行:
UIApplication.sharedApplication().applicationIconBadgeNumber = 0
这暂时有效,如果我的徽章编号是18,然后通过启动它将我的应用程序从后台取出,然后我按下主页按钮,我可以看到应用程序徽章编号已被清除且没有更长的红色图标是我的应用程序中的数字,正如预期的那样。
但是,如果我收到新通知,则应用徽章不会按预期读取1,而是将1添加到已清除的上一个徽章编号,现在为19。
我该如何处理?
我的应用使用以下数据发送推送通知:
var data = [ "title": "xxx",
"alert": message,
"badge" : "Increment",
"sound" : "default"]
答案 0 :(得分:3)
您的问题是您没有清除Parse ghc
中保存的徽章编号。
使用PFInstallation
更新徽章编号,而不是使用PFInstallation
UIApplication.sharedApplication().applicationIconBadgeNumber = 0
会自动清除徽章图标以及更新Parse后端的徽章编号。
将以下内容添加到应用代表的PFInstallation
以及didFinishLaunchingWithOptions
applicationDidBecomeActive
您可能还想将以下内容添加到if (PFInstallation.currentInstallation().badge != 0) {
PFInstallation.currentInstallation().badge = 0
PFInstallation.currentInstallation().saveInBackground()
}
applicationDidBecomeActive