【问题标题】:How IOS apps like Gmail update(decrement) badge counter without push notificatonsIOS 应用程序(如 Gmail 更新(递减)徽章计数器)如何在没有推送通知的情况下进行
【发布时间】:2020-03-13 10:41:56
【问题描述】:

IOS 中的应用程序通常会显示一个徽章计数器,告知该应用程序有多少未读通知处于待处理状态。我的理解是,要更新徽章计数器,增加或减少,我们需要发送带有当前计数器值的推送通知。

我正在测试 Gmail 应用程序的行为,即使我在笔记本电脑的浏览器上将消息标记为已读,IOS 上的应用程序上的计数器也会递减以表示正确的值,而不会收到任何推送通知。在测试之前,我已经在 IOS 上杀死了该应用程序。

我想知道 Gmail 是如何做到这一点的。可以静默推送通知,让我们更新应用程序徽章计数器而不显示通知警报吗?当应用程序处于终止状态时,静默推送通知是否有效?

【问题讨论】:

    标签: ios push-notification gmail


    【解决方案1】:

    在 iOS 上,应用程序是否被终止并不会收到推送通知(顺便说一句,这就是它们是推送通知的原因)。为了更新徽章编号,您可以发送后台通知(静默通知),它会唤醒您的应用,以便您的应用可以更新、获取新内容。

    Read the Docs

    【讨论】:

    • 那么,在我的应用程序唤醒后,我是否需要调用服务器来获取未读总数?或者我可以在发送通知时将计数传递给有效负载,例如 { "alert" :"", "badge" :"10", "Content-available" : "1", "sound" : "" }
    • 您根本不需要 content-available: 1 来更新徽章计数。您可以自己发送徽章编号
    【解决方案2】:

    您可以通过从服务器发送新计数来更新应用的徽章计数。例如通过发送:

    {
       “aps” : {
          “badge” : 9
       }
    }
    

    作为有效负载,您可以将徽章设置为 9。

    有关 APNS 有效负载的更多信息,您可以check the docs

    【讨论】:

      猜你喜欢
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多