APNS徽章计数器的后台处理

时间:2016-07-28 12:36:30

标签: ios objective-c apple-push-notifications

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

2 个答案:

答案 0 :(得分:4)

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

{
    "aps" : {
        "alert" : "You got your emails.",
        "badge" : 9,
        "sound" : "bingbong.aiff"
    },
    "acme1" : "bar",
    "acme2" : 42
}
  1. 密钥徽章的值会自动被视为徽章计数。在ios应用程序端无需计算或处理计数。
  2. 在上面的示例中, 9 是徽章计数。因此,您的应用图标将显示 9。
  3. 注意当您的应用关闭时,您无法自行处理徽章。这就是为什么我们使用 APNS Payload
  4. 中的徽章密钥
  5. 有关通知的详细说明,请参阅documentation
  6. 编辑:如果您想自行减少徽章数量。请减少计数并自行更新。如下所示

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

    或者将计数设为 0 ,这样徽章图标就会消失。在** applicationDidBecomeActive **中添加以下代码

    application.applicationIconBadgeNumber = 0;
    

答案 1 :(得分:1)

要管理通知计数器,您必须在服务器上设置功能。如果您没有阅读新通知,请举Facebook示例,计数器保持增加1,一旦您点击通知,它就会回到零。因此,每当您阅读新通知时,它也会在服务器端管理用户是否打开它。

假设用户看不到3通知,而下一个计数器将4

一旦您通过更新从服务器接收计数,请像处理所有更新一样处理它应用程序徽章计数器设置为0

这是我的理解,因为我在我的iOS应用程序中实现了相同的功能,如果有人有任何好的解决方案的话。请建议。

我希望这张照片(来源谷歌)能够给出完整的理解。

enter image description here