徽章计数器的 APNS 后台处理

Pra*_*dey 3 objective-c apple-push-notifications ios

我在我的应用程序中集成了 APNS,要求是在后台应用程序时保持通知计数。例如,我们在后台收到通知,其中有关键计数器计数,即每个通知中的动态变化,当应用程序处于后台或应用程序强制关闭时,是否可以在 iOS 中处理。

Gok*_*kul 5

这是来自后端服务器的 APNS 负载。

{
    "aps" : {
        "alert" : "You got your emails.",
        "badge" : 9,
        "sound" : "bingbong.aiff"
    },
    "acme1" : "bar",
    "acme2" : 42
}
Run Code Online (Sandbox Code Playgroud)
  1. 钥匙徽章的值被自动视为徽章计数。在 ios 应用程序端无需计算或处理计数。
  2. 在上面的示例中,9是徽章计数。因此您的应用程序图标将显示9。
  3. 注意当您的应用程序关闭时,您无法自行处理徽章。这就是我们使用APNS Payload 的徽章密钥的原因
  4. 有关通知的更好说明,请参阅文档

编辑:如果你想自己减少徽章计数。减少计数并自己更新。如下

NSInteger numberOfBadges = [UIApplication sharedApplication].applicationIconBadgeNumber
numberOfBadges -=1;

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:numberOfBadges];
Run Code Online (Sandbox Code Playgroud)

否则将计数设置为0,以便徽章图标消失。 在 ** applicationDidBecomeActive** 中添加以下代码

application.applicationIconBadgeNumber = 0;
Run Code Online (Sandbox Code Playgroud)