【问题标题】:Auto Increment Push Notification Badge in iOS6iOS6 中的自动增量推送通知徽章
【发布时间】:2013-03-28 16:51:04
【问题描述】:

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

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

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

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

任何示例或参考都会有所帮助。

【问题讨论】:

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


    【解决方案1】:

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

    我做什么:

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

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

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

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 是的...这是我担心的,好像我的应用程序没有运行我不会得到任何数据,所以无法更新徽章。感谢您的解释。
      • 你能告诉我如果用户收到徽章计数 = 8 并且用户打开应用程序会发生什么。然后我将清除服务器上的徽章计数。然后让我们说在清除服务器上的徽章计数之前,服务器又发送了 1 个带有徽章值 = 9 (8+1) 的推送通知。现在用户将看到徽章计数 = 9。对吗?
      • @iOSAppDev 没错。但是假设此时应用程序将在前台运行(因为用户刚刚打开它),您可以立即清除客户端中的徽章,并且用​​户可能看不到它。
      • 感谢您的回复。假设用户在 count = 8 时打开应用程序并关闭它。然后我们会收到徽章计数 = 9 的推送通知。我们会看到徽章计数 = 9,对吧?
      猜你喜欢
      • 2010-12-28
      • 2012-11-25
      • 2012-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-26
      • 1970-01-01
      相关资源
      最近更新 更多