如何在多个iOS设备上同步推送通知?

如何在多个iOS设备上同步推送通知?

scheme是:用户在两台设备上安装了一个应用程序。 这两个设备都会收到远程通知。 用户在一台设备上打开应用程序。 其他设备上的推送通知应该会消失。

这是由许多应用程序,例如Facebook Messenger,但如何实现?

(迅速)

我想以下应该工作(通常的注意事项):

  1. 发送一个静音推送通知( content-available设置,没有警报/声音/徽章,但在2中使用通知的细节)
  2. 用1中的数据创build一个本地通知,立即显示,并保存一个引用
  3. 当用户作用于本地通知时,发送一个请求到服务器让它知道
  4. 服务器向同一用户的所有其他设备发送另一个无声通知,让他们知道删除通知
  5. 收到后,取消2中创build的本地通知。

以下是我完全实现的一种方式:

  • 一旦收到推送通知(必须是具有“内容可用”标志的types,以便将其发送给您的应用程序,即使用户没有点击它),应用程序应该拨打电话到您的服务器,通知服务器它收到。 请注意,拥有该标志意味着您的应用程序可能会得到两次pushnotificatins:一次是系统收到的,另一次是用户点击它。 或者根本不能进来,但那是另一个讨论。
  • 响应这个调用,服务器应该发送一个静默的推送通知(可select一个自定义的有效载荷)到为这个账户注册的其他设备
  • 在收到这个推送通知时,其他客户端将应用程序横幅计数设置为零(这将清除来自通知中心的推送通知,这没有正式logging,所以它可能会在iOS的未来版本中停止工作)。