【问题标题】:How to sync push notifications across multiple iOS devices?如何在多个 iOS 设备之间同步推送通知?
【发布时间】:2016-04-05 14:30:18
【问题描述】:

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

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

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

(斯威夫特)

【问题讨论】:

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


    【解决方案1】:

    这是我实现的一种方式:

    • 在收到推送通知后(它必须是具有“内容可用”标志的那种,以便将其交付给您的应用程序,即使用户没有点击它),应用程序应该调用您的服务器,通知服务器它已收到。请注意,拥有该标志意味着您的应用程序可能会收到两次推送通知:一次是在系统收到时,另一次是在用户点击它时。或者它可能根本不会出现,但那是另一个讨论。
    • 为响应此调用,服务器应向为此帐户注册的其他设备发送静默推送通知(可选自定义有效负载)
    • 在收到此推送通知后,其他客户端将应用程序横幅计数设置为零(这将清除通知中心的推送通知。这没有正式记录,因此它可能会在未来版本中停止工作iOS)。

    【讨论】:

    • 感谢您回答 Joride,我选择了 jcaron 的回答,因为它对我来说似乎更清晰、结构更好,但也赞成您的回答。
    • 感谢您的支持。他的回答更简洁。也请务必查看我对他的回答的评论。
    【解决方案2】:

    我认为以下应该可行(带有通常的警告):

    1. 发送静默推送通知(content-available 设置,aps 中没有警报/声音/徽章,但通知的详细信息用于 2。)
    2. 使用 1 中的数据创建本地通知,立即呈现,并保留对它的引用
    3. 当用户对本地通知进行操作时,向服务器发送请求让其知道
    4. 服务器向同一用户的所有其他设备发送另一个静默通知,让他们知道删除通知
    5. 收到后,取消2中创建的本地通知。

    【讨论】:

    • 这是一个很好的方法,但是静默推送通知可能无法到达有很多原因(我知道,我在设置新应用程序时为此工作了半年)最重要的是: 1)当用户关闭应用程序的后台获取时(许多“有用的”侄子为他们的家人这样做)2)当用户通过从应用程序切换器屏幕向上滑动应用程序来终止应用程序时。更好的方法是发送“常规”推送(在“aps”中带有警报/徽章)以及内容可用集。并不是说这可能会导致推送两次。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2011-08-03
    相关资源
    最近更新 更多