nan*_*ano 2 android ios firebase firebase-cloud-messaging
我正在创建一个iOS和Android本机应用程序,使用Firebase发送推送通知。
它工作正常,但是当我关闭设备并发送一些通知时,启动设备后,我只会收到为iOS发送的最后一个通知,对于Android则发送的最后一个通知。
有没有一种方法可以接收所有推送通知,即使设备处于脱机状态且已启动也是如此?
小智 8
引用几个参考:
iOS:
Apple Push Notification服务包括执行存储转发功能的服务质量(QoS)组件。如果APNs尝试传递通知,并且目标设备处于脱机状态,则APNs将在有限的时间内存储该通知,并在该设备再次变得可用时将其传递。该组件仅存储每个设备和每个应用程序的最新通知。如果设备离线,则发送针对该设备的通知请求会导致先前的请求被丢弃。如果设备长时间保持离线状态,则其存储在APN中的所有通知都将被丢弃。
这将意味着仅保留一个通知,而发送新通知将替换旧通知。所以我认为这是不可能的。
Android:
在Android和Web / JavaScript上,您可以指定消息的最大寿命。该值的持续时间必须为0到2,419,200秒(28天),并且它对应于FCM存储和尝试传递消息的最长时间。不包含此字段的请求的默认最长期限为四个星期。
和
当前,iOS上的通知消息不支持time_to_live
和
如果设备未连接到GCM,则该消息将一直存储到建立连接为止(再次遵守折叠键规则)。建立连接后,GCM会将所有待处理的邮件发送到设备。如果设备再也无法连接(例如,如果它已恢复出厂设置),则该消息最终将超时并从GCM存储中丢弃。除非设置了time_to_live标志,否则默认超时为4周。
和
最后,当GCM尝试将消息传递到设备且应用程序已卸载时,GCM会立即丢弃该消息并使注册令牌无效。将来尝试向该设备发送消息将导致NotRegistered错误。
意味着它应该正在接收挂起的消息。除非设备已恢复出厂设置或已卸载。
消息传递概念和选项(尽管已弃用,但现在建议参考上面链接的FCM消息传递)
| 归档时间: |
|
| 查看次数: |
1751 次 |
| 最近记录: |