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

Mar*_*ary 5 iphone push-notification apple-push-notifications ipad ios

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

Era*_*ran 17

正确的答案是肯定的

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

到期

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


tha*_*rem 5

答案是否定的

以下是苹果对此的评价,

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

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

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