【问题标题】:Application badge number updates parse swift应用程序徽章编号更新解析 swift
【发布时间】:2015-09-17 16:06:21
【问题描述】:

我有一个应用通过解析实现推送通知。

当用户打开应用程序时,我在清除徽章图标时遇到了一些问题。

我的 appDelegate didFinishLaunchingWithOptions 和应用程序 didBecomeActive 中有以下代码行:

UIApplication.sharedApplication().applicationIconBadgeNumber = 0

这暂时有效,如果我的徽章编号为 18,然后我通过启动它将我的应用程序从后台移出,然后按主页按钮,我可以看到应用程序徽章编号已清除并且没有正如预期的那样,我的应用程序中的红色图标和数字更长了。

但是,如果我收到新通知,则应用程序徽章不会按预期读取 1,而是将 1 添加到之前已清除的徽章编号,现在为 19。

我该如何处理?

我的应用发送带有以下数据的推送通知:

var data = [ "title": "xxx",
             "alert": message, 
             "badge" : "Increment",
             "sound" : "default"]

【问题讨论】:

    标签: ios swift parse-platform badge


    【解决方案1】:

    您的问题是您没有清除 Parse 的 PFInstallation 中保存的徽章编号。

    使用PFInstallation 更新徽章编号,而不是使用UIApplication.sharedApplication().applicationIconBadgeNumber = 0 直接修改它

    PFInstallation 将自动负责清除徽章图标以及更新 Parse 后端中的徽章编号。

    将以下内容添加到应用委托的didFinishLaunchingWithOptionsapplicationDidBecomeActive

    if (PFInstallation.currentInstallation().badge != 0) {
        PFInstallation.currentInstallation().badge = 0
        PFInstallation.currentInstallation().saveInBackground()
    }
    

    您可能还想将以下内容添加到applicationDidBecomeActive

    // Clears out all notifications from Notification Center
    UIApplication.sharedApplication().cancelAllLocalNotifications()
    

    【讨论】:

    • 谢谢它的工作。也感谢通知中心的提示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    相关资源
    最近更新 更多