3

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

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

  1. 我可以在 iOS 应用程序端自动增加它吗?如果是这样,怎么做?

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

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

4

2 回答 2

6

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

我做什么:

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

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

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

希望这有帮助。

于 2013-03-28T16:55:20.493 回答
4

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

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

于 2013-03-28T16:56:38.627 回答