Pet*_*ang 3 apple-push-notifications firebase firebase-cloud-messaging
当我向离线(例如在飞行模式或关闭)的 iOS 设备发送通知时,我无法弄清楚 FCM 的行为方式。
该time_to_live属性的文档提到了这一点,Currently, time_to_live is not supported for notification messages on iOS.但没有提供对所做操作的解释。我试过测试它,似乎推送通知有时会通过,有时不会,无论我将time_to_live属性设置为什么,尽管我不确定这是由于节流还是其他原因FCM方面。
相关地,我似乎无法让该delay_while_idle属性在 iOS 上运行,尽管文档没有明确提到它不适用于 iOS - 在手机休眠时发送的通知仍然会唤醒手机,即使我设置了delay_while_idle是真实的。
有没有人对这应该如何工作有任何见解?
该time_to_live是AFAIK适用于Android和iOS。但是,由于 FCM 向 iOS 设备发送消息的过程如下:
应用服务器 > FCM 服务器 > APNs > iOS 设备
可以肯定地说,只有 FCM 服务器使用time_to_live,根据它的描述:
此参数指定如果设备离线,消息应在 FCM 存储中保留多长时间(以秒为单位)。支持的最长生存时间为 4 周,默认值为 4 周。有关更多信息,请参阅设置消息的生命周期。
环顾四周,发送到离线设备时 APNs 的行为是(来自Apple 文档):
Apple 推送通知服务包括一个执行存储和转发功能的服务质量 (QoS) 组件。如果 APNs 尝试传递通知并且目标设备处于离线状态,APNs 会将通知存储一段有限的时间,并在设备再次可用时传递它。此组件仅存储每个设备和每个应用程序的最新通知。如果设备处于离线状态,发送针对该设备的通知请求会导致之前的请求被丢弃。如果设备长时间处于离线状态,则其在 APN 中存储的所有通知都将被丢弃。
截至目前,delay_while_idle现已弃用。
我知道,你可以做的方式唤醒的iOS手机(在线/连接到一个像样的网络)是简单地设置priority到high。
| 归档时间: |
|
| 查看次数: |
1316 次 |
| 最近记录: |