在Ionic应用程序中,我使用Parse作为推送通知。虽然推送通知在iOS和安卓系统中都能正常工作,但当设备离线和在线时,安卓和iOS的行为却有很大的不同。
在Android系统中,当设备离线时发送的所有通知都会被接收。在iOS中,出现以下任一情况:
在APNS中,这种看似随机的行为是预期的,还是我在Parse中遗漏了一些设置?我还读到,在这种情况下,不应依赖亚太网络。
发布于 2015-07-30 09:04:11
苹果推送通知服务包括一个执行存储和转发功能的服务质量(QoS)组件。 如果APN试图传递通知,而目标设备离线,则APN将该通知存储一段有限的时间,并在设备再次可用时交付通知。 这个组件只存储每个设备和每个应用程序的最新通知。如果设备脱机,则发送针对该设备的通知请求将导致放弃先前的请求。如果一个设备长期处于脱机状态,那么它在APN中存储的所有通知都会被丢弃。 苹果推送通知服务包括一个执行存储和转发功能的服务质量(QoS)组件。如果APN试图传递通知,而目标设备离线,则APN将该通知存储一段有限的时间,并在设备再次可用时交付通知。该组件只存储每个设备和每个应用程序的最新通知。如果设备脱机,则发送针对该设备的通知请求将导致放弃先前的请求。如果一个设备长期处于脱机状态,那么它在APN中存储的所有通知都会被丢弃。
对于GCM,可以使用折叠键实现类似的行为。
此参数标识一组可以折叠的消息(例如,使用collapse_key:“更新可用”),以便在可以恢复传递时只发送最后一条消息。这是为了避免在设备恢复联机或激活时发送太多相同的消息(请参阅delay_while_idle)。 注意到,无法保证消息的发送顺序.
iOS上的随机行为似乎很奇怪,但可能只是因为推送通知没有100%保证被发送,也没有按发送的顺序进行。
https://stackoverflow.com/questions/31545342
复制相似问题