应用通知上的自定义时间戳

默认情况下,将通知中心内可见的应用通知上的时间戳设置为发送通知的时间。 可以选择使用自己的自定义日期和时间替代时间戳,以使时间戳表示实际创建消息/信息/内容的时间,而不是发送通知的时间。 这还可确保通知中心内以按时间排序的正确顺序显示通知。 建议大多数应用指定自定义时间戳。

此功能在 Windows 15063 及更高版本中可用。

App notification with custom timestamp

注意

术语“toast 通知”替换为“应用通知”。 两个术语指的是 Windows 的相同功能,但随着时间的推移,我们将逐步取消在文档中使用“toast 通知”。

若要使用自定义时间戳,只需在应用通知 XML 有效负载的 toast 元素上分配 displayTimestamp 属性。 从 Windows 应用 SDK 1.2 开始,可以使用 Microsoft.Windows.AppNotifications.Builder 向应用通知添加自定义时间戳。 对于 UWP 应用,可以使用 UWP 社区工具包通知 NuGet 库的版本 1.4.0 或更高版本。 还可以使用原始 xml 指定时间戳。

var builder = new AppNotificationBuilder()
    .AddText("Matt sent you a friend request")
    .AddText("Hey, wanna dress up as wizards and ride around on hoverboards?")
    .SetTimeStamp(new DateTime(2017, 04, 15, 19, 45, 00, DateTimeKind.Utc));

如果使用 XML,则日期必须采用 ISO 8601 格式。

注意

只能对秒使用最多 3 个小数位数(尽管提供此等精度实际上没有任何价值)。 如果提供更多位数,有效负载将无效,你将收到“新通知”通知。

用法指南

一般情况下,我们建议大多数应用指定自定义时间戳。 这可确保通知的时间戳准确表示生成消息/信息/内容的时间,而不用顾及网络延迟、飞行模式或定期后台任务的固定间隔。

例如,新闻应用可能会每隔 15 分钟运行一个后台任务,该任务检查新文章并显示通知。 在自定义时间戳之前,时间戳对应于生成应用通知的时间(因此间隔始终为 15 分钟)。 但是,现在应用可以将时间戳设置为实际发布文章的时间。 同样,如果将定期拉取之类的模式用于通知,电子邮件应用和社交网络应用可以从此功能中受益。

此外,提供自定义时间戳可确保即使用户与互联网断开连接,时间戳也是正确的。 例如,当用户打开其计算机并运行后台任务时,你最终可以确保通知上的时间戳表示发送消息的时间,而不是用户打开其计算机的时间。

默认时间戳

如果未提供自定义时间戳,我们将使用发送通知的时间。

如果通过 WNS 发送推送通知,我们将使用 WNS 服务器收到通知的时间(因此,将通知传送到设备的任何延迟都不会影响时间戳)。

如果发送了本地通知,我们将使用通知平台收到通知的时间(应为即时的)。