从客户端增加徽章数量而不是从有效负载接收计数

时间:2016-09-27 08:51:00

标签: ios objective-c iphone swift push-notification

我正在处理接收通知和设置申请徽章的申请。
问题是,当申请处于后台状态或终止时,徽章数量不会增加。相同。

当应用程序处于前台时,方法调用和徽章数量增加。
我已经从服务器端做了那件事,
但我想知道有没有方法当应用程序处于后台或终止以增加应用程序徽章编号时执行?

我已经告诉过你我做过这件事

{
    "aps" : {
        "alert" : "You got your emails.",
        "badge" : 9
    }
}

从服务器端,但我想要的是:我不想从服务器有效负载收到该徽章数,但我想从我这边增加徽章数。

< strong>我的逻辑就像当我收到第一个通知时,我在didReceiveNotification中保存了userdeafualts中的计数,当我第二次通知时,我添加了+1计数,当app在前台时,我直接将用户默认值中的徽章计数更改为0但是这个方法无法通知在背景或应用程序终止中工作

所以我想知道是否有任何方法在背景或应用程序中执行,因此我可以增加BADGE COUNT

如果有人知道,请帮助我从我这边做。

3 个答案:

答案 0 :(得分:2)

使用application(_:didReceiveRemoteNotification:fetchCompletionHandler:)的{​​{1}}。如果您启用了远程通知后台模式,系统会唤醒您的应用。有关更多信息,请查看此方法的文档

答案 1 :(得分:2)

要在应用程序处于后台时收到推送通知,您需要更新Xcode中目标的功能并添加后台模式...远程通知。然后,您必须将密钥content-available添加到有效负载并设置为1.这将触发application:didReceiveRemoteNotification:fetchCompletionHandler:。请参阅文档here

当应用程序终止时,您无能为力。

答案 2 :(得分:1)

如果您要检入AppDelegate.m文件,可以使用一种方法来了解该应用是否在后台。

- (void)applicationDidEnterBackground:(UIApplication *)application