应用徽章编号更新解析 swift
Application badge number updates parse swift
我有一个应用程序通过解析实现推送通知。
我在用户打开应用程序时清除徽章图标时遇到了一些问题。
我的 appDelegate didFinishLaunchingWithOptions 和应用程序 didBecomeActive 中有以下代码行:
UIApplication.sharedApplication().applicationIconBadgeNumber = 0
这暂时有效,因为如果我的徽章编号为 18,然后通过启动我的应用程序将其从后台移出,然后按下主页按钮,我可以看到应用程序徽章编号已被清除,并且正如预期的那样,不再是我的应用程序中的红色图标和数字。
但是如果我收到新通知,应用徽章不会按预期读取 1,而是将 1 添加到之前已清除的徽章编号,现在是 19。
我该如何处理?
我的应用发送包含以下数据的推送通知:
var data = [ "title": "xxx",
"alert": message,
"badge" : "Increment",
"sound" : "default"]
您的问题是您没有清除保存在 Parse PFInstallation
中的徽章编号。
使用 PFInstallation
更新徽章编号,而不是使用 UIApplication.sharedApplication().applicationIconBadgeNumber = 0
直接修改它
PFInstallation
将自动清除徽章图标并更新 Parse 后端的徽章编号。
将以下内容添加到应用委托的 didFinishLaunchingWithOptions
以及 applicationDidBecomeActive
if (PFInstallation.currentInstallation().badge != 0) {
PFInstallation.currentInstallation().badge = 0
PFInstallation.currentInstallation().saveInBackground()
}
您可能还想将以下内容添加到 applicationDidBecomeActive
// Clears out all notifications from Notification Center
UIApplication.sharedApplication().cancelAllLocalNotifications()
我有一个应用程序通过解析实现推送通知。
我在用户打开应用程序时清除徽章图标时遇到了一些问题。
我的 appDelegate didFinishLaunchingWithOptions 和应用程序 didBecomeActive 中有以下代码行:
UIApplication.sharedApplication().applicationIconBadgeNumber = 0
这暂时有效,因为如果我的徽章编号为 18,然后通过启动我的应用程序将其从后台移出,然后按下主页按钮,我可以看到应用程序徽章编号已被清除,并且正如预期的那样,不再是我的应用程序中的红色图标和数字。
但是如果我收到新通知,应用徽章不会按预期读取 1,而是将 1 添加到之前已清除的徽章编号,现在是 19。
我该如何处理?
我的应用发送包含以下数据的推送通知:
var data = [ "title": "xxx",
"alert": message,
"badge" : "Increment",
"sound" : "default"]
您的问题是您没有清除保存在 Parse PFInstallation
中的徽章编号。
使用 PFInstallation
更新徽章编号,而不是使用 UIApplication.sharedApplication().applicationIconBadgeNumber = 0
PFInstallation
将自动清除徽章图标并更新 Parse 后端的徽章编号。
将以下内容添加到应用委托的 didFinishLaunchingWithOptions
以及 applicationDidBecomeActive
if (PFInstallation.currentInstallation().badge != 0) {
PFInstallation.currentInstallation().badge = 0
PFInstallation.currentInstallation().saveInBackground()
}
您可能还想将以下内容添加到 applicationDidBecomeActive
// Clears out all notifications from Notification Center
UIApplication.sharedApplication().cancelAllLocalNotifications()