如何在多个 iOS 设备之间同步推送通知?
How to sync push notifications across multiple iOS devices?
如何在多个 iOS 设备之间同步推送通知?
场景是:
用户在两台设备上安装了一个应用程序。
两个设备都会收到远程通知。
用户在一台设备上打开应用程序。
另一台设备上的推送通知应该会消失。
许多应用程序都这样做,例如Facebook Messenger,但这是如何实现的?
(Swift)
这是我实现的一种方式:
- 收到推送通知后(它必须是带有 'content-available' 标志的那种,以便它被发送到您的应用程序,即使用户没有点击它),应用程序应调用您的服务器,通知服务器已收到。请注意,拥有该标志意味着您的应用可能会收到两次推送通知:一次是在系统收到通知时,第二次是在用户点击它时。或者它可能根本不会进来,但那是另一个讨论。
- 为响应此调用,服务器应向为此帐户注册的其他设备发送静默推送通知(可选择自定义负载)
- 收到此推送通知后,其他客户端将 application-banner 计数设置为零(这将从通知中心清除推送通知。这没有正式记录,因此它可能会停止工作iOS).
的未来版本
我认为以下应该有效(有通常的警告):
- 发送静默推送通知(
content-available
已设置,aps
中没有alert/sound/badge,但通知的详细信息在2中使用。)
- 使用 1 中的数据创建本地通知,立即呈现,并保留对它的引用
- 当用户对本地通知进行操作时,向服务器发送请求让它知道
- 服务器向同一用户的所有其他设备发送另一个静默通知,让他们知道删除通知
- 收到后,取消2中创建的本地通知
如何在多个 iOS 设备之间同步推送通知?
场景是: 用户在两台设备上安装了一个应用程序。 两个设备都会收到远程通知。 用户在一台设备上打开应用程序。 另一台设备上的推送通知应该会消失。
许多应用程序都这样做,例如Facebook Messenger,但这是如何实现的?
(Swift)
这是我实现的一种方式:
- 收到推送通知后(它必须是带有 'content-available' 标志的那种,以便它被发送到您的应用程序,即使用户没有点击它),应用程序应调用您的服务器,通知服务器已收到。请注意,拥有该标志意味着您的应用可能会收到两次推送通知:一次是在系统收到通知时,第二次是在用户点击它时。或者它可能根本不会进来,但那是另一个讨论。
- 为响应此调用,服务器应向为此帐户注册的其他设备发送静默推送通知(可选择自定义负载)
- 收到此推送通知后,其他客户端将 application-banner 计数设置为零(这将从通知中心清除推送通知。这没有正式记录,因此它可能会停止工作iOS). 的未来版本
我认为以下应该有效(有通常的警告):
- 发送静默推送通知(
content-available
已设置,aps
中没有alert/sound/badge,但通知的详细信息在2中使用。) - 使用 1 中的数据创建本地通知,立即呈现,并保留对它的引用
- 当用户对本地通知进行操作时,向服务器发送请求让它知道
- 服务器向同一用户的所有其他设备发送另一个静默通知,让他们知道删除通知
- 收到后,取消2中创建的本地通知