繁体   English   中英

iOS- Apple推送通知从APNS重新发送

[英]iOS- Apple push notification resend from APNS

从Apple的文档中我了解到,如果设备处于脱机状态,APNS会保留最后一个通知,并在设备重新联机时将其发送到设备。 是否有任何机制可以避免重发?

正确的答案是肯定的

如果使用增强型二进制格式 (包含消息标识符和到期日期格式)发送通知,则可以使用expiry参数来阻止通知存储在APN服务器中。 这样,仅当APN服务器首次尝试传送设备时设备处于联机状态才会传递通知。

到期

以秒(UTC)表示的固定UNIX纪元日期,用于标识通知何时不再有效且可以丢弃。 到期值使用网络字节顺序(大端)。 如果到期值为正,则APN尝试至少传递一次通知。 指定零(或小于零的值)以请求APN根本不存储通知

答案是否定的

以下是苹果对此的评价,

如果APN尝试发送通知但设备处于脱机状态,则通知将存储一段有限的时间,并在设备可用时传送给设备。

仅存储特定应用程序的最近通知。 如果在设备脱机时发送多个通知,则每个新通知都会导致先前通知被丢弃。 仅保留最新通知的这种行为称为合并通知。

如果设备长时间保持脱机状态,则会丢弃为其存储的所有通知。

我同意伊兰的观点。

您的问题“APNS持有最后通知并在设备重新联机时将其发送到设备”的这一部分仅在到期日期不为零时才为真。

如果您确实希望在电话上线时传递消息,则消息将等到“失效日期”之后才被丢弃。

APNS文件:

到期日期4个字节以秒(UTC)表示的UNIX纪元日期,用于标识通知何时不再有效且可以丢弃。 如果此值不为零,则APN会存储通知尝试至少传递一次通知。 指定零以指示通知立即过期,并且APN根本不应存储通知

有关详细信息,请参阅https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM