离线或飞行模式下处理远程推送通知

5

推送通知服务

我现在在使用OneSignal为我的iPhone提供推送通知服务。

应用程序状态:

假设我的应用程序在后台运行,但设备处于飞行模式。

我从一个信号发送3条消息“测试1”,“测试2”和“测试3”,它们都包含APNS提供的“body”和“title”。

当我关闭飞行模式并将设备恢复联网时,只有“测试3”到达,而剩下的“测试1”和“测试2”没有出现。

是由于APNS通知限制造成的吗?我认为它小于2KB。我是否做错了什么?我真的需要帮助来指导我。

帮助: 那么,如果设备离线,我们如何处理多个通知?

1个回答

10
对的,APNS只为那些无法到达的设备存储一条最新的消息。这在Apple Developer Library中有详细记录。
如果APNs尝试发送通知但设备离线,则通知将被存储一段有限的时间,等设备重新联网时再发送通知。每个应用程序仅存储一个最近的通知。如果在设备离线时发送了多个通知,则每个新通知都会使先前的通知被丢弃。只保留最新通知的行为称为合并通知。如果设备长时间离线,则为其存储的任何通知都将被丢弃。
确保后台数据不丢失的最可靠方法是在服务器上为每个用户存储数据,然后使用后台通知指示您的应用程序从服务器获取最新数据,而不是从通知元数据本身获取数据。

2
这可能在未来也会发生变化,但这是最新的参考资料:https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/APNSOverview.html#//apple_ref/doc/uid/TP40008194-CH8-SW1 - Mustafa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接