[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]
注意 不使用 JavaScript?请参阅快速入门:发送锁屏提醒更新 (XAML)。
本主题介绍如何在磁贴上创建或更新锁屏提醒。你将发送一个包含字形或数字值的锁屏提醒通知。还会介绍如何从磁贴中删除锁屏提醒。
锁屏提醒是显示在磁贴上以通过某种方式指示应用状态的一个数字或字形。锁屏提醒是磁贴上的重叠,而不是磁贴本身的一部分。它可以出现在磁贴上的多个位置:
- 在使用从左到右的语言(如英语)的 Windows 中位于右下角
- 在使用从右到左的语言(如阿拉伯语)的 Windows 中位于左下角
- 在使用从左到右的语言的 Windows Phone 8.1 中位于右上角
- 在使用从右到左的语言的 Windows Phone 8.1 中位于左上角
锁屏提醒通过它自己的 API 和架构操作,并且通过它自己的通知进行更新。本主题指导你完成定义锁屏提醒的内容、通过通知发送锁屏提醒以及不再需要时将该内容删除的过程。 这些操作使用本地通知演示,本地通知是要实现的最简单的通知。
注意 在本主题中,你将直接通过 XML 文档对象模型 (DOM) 操作通知内容。通过 NotificationsExtensions 库可获得一种可选方法,该库将 XML 内容作为对象属性(包括 Intellisense)提供。有关详细信息,请参阅快速入门:在代码中使用 NotificationsExtensions 库。要查看本主题中使用 NotificationsExtenstions 表示的代码,请参阅应用磁贴和锁屏提醒示例。
先决条件
要理解本主题,你将需要:
- 了解锁屏提醒和通知术语及概念。有关详细信息,请参阅磁贴、锁屏提醒以及通知。
- 熟悉锁屏提醒 XML 架构。有关详细信息,请参阅锁屏提醒架构。
- 能够使用 Windows 运行时 API 创建使用 JavaScript 的基本 Windows 应用商店应用。有关详细信息,请参阅创建第一个采用 JavaScript 的 Windows 应用商店应用。
- 熟悉 XML 及其通过文档对象模型 (DOM) API 的操作。
说明
1. 可选:声明命名空间变量
此步骤为你提供一个短名称,用于替换完全命名空间名称。它等同于 C# 中的“using”语句或 Visual Basic 中的“Imports”语句,使用它可以简化你的代码。
注意 本主题中的剩余代码假设已声明此变量。
var notifications = Windows.UI.Notifications;
2. 选择是显示数字还是字形
锁屏提醒可以显示数字 0-99 或系统定义的状态字形集之一。你选择的锁屏提醒将取决于你的方案。例如,电子邮件程序可能显示未读邮件的数量,也可能在新邮件到达时显示“新邮件”字形。有关可用字形的详细信息,请参阅锁屏提醒概述。有关何时使用数字或字形的详细信息,请参阅磁贴和锁屏提醒指南和清单。
注意 从 Windows Phone 8.1 开始,手机锁屏提醒仅支持“警报”和“注意”状态字形以及数字。向手机发送任何其他字形将清除锁屏提醒。
数字锁屏提醒和字形锁屏提醒将通过用于每个锁屏提醒的特定锁屏提醒模板定义。你必须为你决定的锁屏提醒检索适当的模板。该示例检索用于数字锁屏提醒的模板。
var badgeType = notifications.BadgeTemplateType.badgeNumber;
var badgeXml = notifications.BadgeUpdateManager.getTemplateContent(badgeType);
该示例检索用于字形锁屏提醒的模板。
var badgeType = notifications.BadgeTemplateType.badgeGlyph;
var badgeXml = notifications.BadgeUpdateManager.getTemplateContent(badgeType);
3. 为锁屏提醒分配值
该示例从模板中检索 badge 元素并为该元素分配数字值。
var badgeAttributes = badgeXml.getElementsByTagName("badge");
badgeAttributes[0].setAttribute("value", "7");
该示例为锁屏提醒分配字形值。
var badgeAttributes = badgeXml.getElementsByTagName("badge");
badgeAttributes[0].setAttribute("value", "newMessage");
4. 创建锁屏提醒通知并将其发送至锁屏提醒
该示例将你定义的 XML 打包至通知中并将其发送至锁屏提醒。
var badgeNotification = new notifications.BadgeNotification(badgeXml);
notifications.BadgeUpdateManager.createBadgeUpdaterForApplication().update(badgeNotification);
5. 可选:当锁屏提醒不再有效时将其清除
如果通过锁屏提醒数字或字形传达的信息已过期或者不再有用,那么你应该删除该锁屏提醒。以下代码从调用应用的磁贴中删除当前锁屏提醒。你也可以发送值“None”作为锁屏提醒更新以代替调用 Clear 方法。
注意 与磁贴不同,锁屏提醒可以通过云清除。
notifications.BadgeUpdateManager.createBadgeUpdaterForApplication().clear();
摘要和后续步骤
在本快速入门中,你定义了新内容并将该内容发送到应用磁贴上的锁屏提醒,然后当该锁屏提醒不再有效时将其删除。
本快速入门将锁屏提醒更新作为本地通知发送。你还可以探索其他通知传递方法:计划、定期和推送。有关详细信息,请参阅传送通知。