默认情况下,推送通知在 Windows 推送通知服务 (WNS) 收到后三天内过期。如果需要,您可以使用明确的到期时间覆盖此默认值。
我不确定你在哪里读到这个。然而,这并不完全正确。三天到期时间是指磁贴和徽章通知在设备交付时的生命周期。它不是从 WNS 收到它们的时间开始的。
默认情况下,本地磁贴和徽章通知不会过期,而推送通知、定期通知和计划通知会在三天后过期。所以在磁贴和徽章通知到期时,它说
默认情况下,磁贴和徽章通知在下载三天后过期。
我们可以通过设置X-WNS-TTL 标头来更改每个通知的过期时间。如果您想确保通知不会晚于某个时间显示,则通常会使用此标头。TTL 以秒为单位指定,与 WNS 接收请求的时间相关。
对于您的问题,从在Windows 推送通知服务 (WNS) 概述中发送通知下的重要说明中,我们可以发现:
当设备离线时,默认情况下,WNS 将最多存储五个磁贴通知(如果启用了排队;否则,一个磁贴通知)和每个通道 URI 的一个标记通知,并且没有原始通知。可以通过X-WNS-Cache-Policy 标头更改此默认缓存行为。请注意,当设备离线时,永远不会存储 toast 通知。
在X-WNS-Cache-Policy 标头中,我们可以获得更多信息。
当通知目标设备离线时,WNS 会为每个应用缓存一个徽章和一个磁贴通知。如果为应用启用通知循环,WNS 将缓存最多五个磁贴通知。默认情况下,未缓存原始通知,但如果启用了原始通知缓存,则会缓存一个原始通知。项目不会无限期地保存在缓存中,并且会在一段合理的时间后被丢弃。否则,缓存的内容将在设备下一次上线时交付。
所以当你的应用离线时,WNS 可以为你缓存一些推送通知,但很难说它们会被缓存多久。
WNS 响应以指示已收到通知并将在下一个可用机会时发送。但是,WNS 不提供设备或应用程序已收到您的通知的端到端确认。
WNS 不保证通知的可靠性或延迟。如果您想确保可以通知用户有关服务器更新的信息,您可能需要使用一些其他技术。例如,您可以在应用程序在线时向服务器发送主动请求以获取服务器更新。