2

我正在开发我的第一个 Windows UWP 应用程序。并计划使用 Windows 推送通知来通知应用程序有关某些服务器更新。此应用程序不会始终访问互联网。它可能会离线几天。所以我想确定在这种情况下是否可以使用推送通知。如果该设备处于脱机状态,则从服务器发送通知时,它将存在多长时间而不会从队列中删除?

在我读过的一篇文章中,“默认情况下,推送通知在 Windows 推送通知服务 (WNS) 收到通知后三天内过期。如果需要,您可以使用明确的过期时间覆盖此默认设置。” 但我不确定这是指我要问的内容,还是说当它交付到设备时,磁贴、徽章等将在 3 天后将其移除。

你能澄清一下吗?

4

1 回答 1

0

默认情况下,推送通知在 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 不保证通知的可靠性或延迟。如果您想确保可以通知用户有关服务器更新的信息,您可能需要使用一些其他技术。例如,您可以在应用程序在线时向服务器发送主动请求以获取服务器更新。

于 2016-06-29T11:26:52.627 回答