gpt4 book ai didi

应用程序未运行时的 iOS 可达性

转载 作者:行者123 更新时间:2023-11-29 12:12:57 28 4
gpt4 key购买 nike

一个简单的问题:当应用程序被终止或未运行时,是否可以在互联网连接可用时收到消息、通知或类似信息?

出于我的目的,我需要一种方法来同步我的所有通知,因为 APNs 只能发送最后一条消息。

编辑:我想知道某些应用程序(例如 whatsapp)如何能够在互联网连接启动时同步它们的通知。如果我关闭 whatsapp,当互联网连接可用时我可以收到多个通知,但 APNS 服务器只提供最后一条消息,在这种情况下,我无法发送静默通知。如果我应该开发聊天应用程序,使用 Apple 通知的最佳做法是什么?

最佳答案

  1. 如果您在应用程序暂停(被终止/强制关闭)时发送带有标题、文本、声音和/或角标(Badge)属性的推送通知,设备仍会收到它,例如会将文本显示为通知、播放声音和/或更改角标(Badge)计数。

  2. 但是,在这种情况下,您的应用不会在后台启动或唤醒,因此您无法在用户点击通知之前处理通知。 (见这个问题: Will iOS launch my app into the background if it was force-quit by the user? )

因此,如果应用被用户强行关闭,您唯一的选择是发送通知以按原样显示,如果设备处于离线状态,则设备只会接收和显示最后一条通知。

要获得更多控制,您可以使用静默推送通知来实现“推送同步”。在这种情况下,推送通知仅表示有新数据要获取。该应用程序(如果不是强制关闭)然后从服务器加载数据并以正确的顺序使用正确的数据触发本地通知。但如果应用被强制关闭,这将不起作用。

Apple 推送通知有很多限制,因此您无法实现完美的解决方案。在我看来,如果用户在设备离线一段时间后上线时只收到最后一次通知就可以了。至少他被告知有一条新消息,打开应用程序后,他也可以看到其他新消息。对于“一键同步”场景,我会说如果用户强行退出应用程序,他无权期望该应用程序按预期工作。

推送通知从未打算像现在许多应用程序那样使用。例如。它们不应包含敏感数据,例如聊天消息。它们旨在通知用户该应用程序有新数据,因此他可以启动它以查看新数据。例如。而不是发送实际的聊天消息文本,推送通知应该只包含文本“你有一条新消息”。那你就没有你描述的问题了。当然,就可用性而言,这是一个糟糕的解决方案。

关于应用程序未运行时的 iOS 可达性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32826033/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com