2016-11-23 56 views
-1

我正在设置0个应用程序图标徽章号,如下面的开放应用程序。增加iOS推送通知增加所有时间,甚至零设置?

[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 

但由于服务器在应用程序处于死亡状态后台时发送增量,它不会再以零开始。

说的是,如果它是2,那么将是3,而不是在每次推动时都是4。如果我打开App并将其设置为ZERO,然后返回,则iCON上不显示任何内容,但在服务器发送时,它将从5开始。

总之,它保留了现有的计数器。

我该如何解决这个问题。我有iOS 10.1和Xcode 8.1

谢谢。

+0

您可能正在从推送通知有效负载中获取应用程序徽章号。例如,如果你有以下的有效载荷: { “APS”:{ “警告”:“你有你的电子邮件。” “徽章”:9 } } 这将是9,即使你设置在应用程序中退出徽章零。 –

+0

完全不同意你。我没有得到任何徽章:9从服务器,它的增量,另一个策略。 –

+0

你能显示你的推送通知有效载荷吗? –

回答

0

来自服务器的有效负载已经有一个将设置的徽章号码,所以无论以前是什么。只有你在有效载荷中获得的徽章号码很重要。

您需要做的是将一些自定义逻辑添加到您拨打[UIApplication sharedApplication].applicationIconBadgeNumber = 0;的地方,以便您可以在每次激活应用程序时重置服务器徽章计数。

+0

我正在做didFinishLaunch中的0。它显示在主图标上,意味着隐藏徽章,但是它来自服务器,它在0之前再次显示相同的计数+1。 –

+0

您将本地徽章编号设置为0,但**服务器**不重置计数 - 在接下来推动你获得本地重置后你得到的badgeNumber:count + 1的有效载荷,这就是为什么它被设置为直接计数+1。你需要的是在服务器上以及在应用程序中重置该计数器。 –

+0

服务器永远不会计数+ 1,它只表示增量,不计数,无徽章编号,其简单增量。我在家,明天从办公室给我送货。 –