iOS6中的自动递增推送通知徽章

时间:2013-03-28 16:51:05

标签: php ios push-notification apple-push-notifications badge

我从服务器获取推送通知。服务器始终在有效负载中发送badge = 1。

服务器端开发人员对此一无所知。任何人都可以告诉我服务器端开发人员如何处理徽章计数值,以便iOS应用程序获得更新的徽章计数(自动增加徽章数)?

  1. 我可以在iOS应用端自动递增吗?如果是这样,怎么样?

  2. 如果不是,那么服务器开发人员如何处理服务器上的徽章计数?我看到几个链接告诉我服务器端应该处理徽章计数。

  3. 任何样本或参考都会有所帮助。

2 个答案:

答案 0 :(得分:6)

我认为你不能在iOS应用程序方面做到这一点。它必须来自服务器。

我的所作所为:

  • 服务器在每个用户的数据库中存储一个应用程序徽章编号。
  • 当服务器发送通知时,它会将该数字增加1。
  • 您还需要创建一个Web服务来重置您在启动应用程序时调用的徽章编号。

您可以使用该行更改应用中的徽章编号(例如,在applicationDidBecomeActive中):

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    application.applicationIconBadgeNumber = 0;
}

希望得到这个帮助。

答案 1 :(得分:4)

徽章计数是可以从服务器的Apple推送通知有效负载中发送的参数之一。徽章计数通常反映服务器知道的某些新数据(例如未读电子邮件)的数量,并且想要向应用程序用户发出警告。 因此,它应该在服务器端完成。应更改当前始终在徽章计数中发送1的代码以选择正确的计数。

您可以在客户端中执行此操作(每当推送通知到达时将其递增一次),但这不是一个好主意,因为推送通知无法保证到达。此外,只有通知除了徽章编号之外还包含警报,并且用户点击通知以打开应用程序(否则,如果通知数据尚未运行,您的应用程序将无法获取通知数据)