如何使用通知队列 (HTML)

[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]

注意  不使用 JavaScript?请参阅如何使用通知队列 (XAML)

 

此主题显示了如何在磁贴上启用通知队列(在这种情况下为使用本地通知)。该主题还显示了如何在发送通知前标记通知,如何避免队列中出现重复或过期内容。启用通知队列时,Windows 将最多循环 5 个通知。

要查看本快速入门中提供的 JavaScript 示例的 C#、C++ 或 Visual Basic 版本,请参阅如何使用通知队列(C#、C++ 或 Visual Basic)

注意  在此快速入门中,你将直接通过 XML 文档对象模型 (DOM) 操作通知内容。通过 NotificationsExtensions 库可获得一种可选方法,该库将 XML 内容作为对象属性(包括 Intellisense)提供。有关详细信息,请参阅快速入门:在代码中使用 NotificationsExtensions 库。要查看此快速入门中使用 NotificationsExtenstions 表示的代码,请参阅应用磁贴和锁屏提醒示例

 

你需要了解的内容

技术

  • Windows Runtime

先决条件

要理解本主题,你将需要:

说明

步骤 1: 可选:声明命名空间变量

此步骤为你提供一个短名称,用于替换完全命名空间名称。它等同于 C# 中的“using”语句或 Visual Basic 中的“Imports”语句,使用它可以简化你的代码。

注意  此快速入门中的剩余代码假定已声明此变量。

 


var notifications = Windows.UI.Notifications;

步骤 2: 设置选项以启用通知循环

此代码为你的应用启用通知队列。运行应用时,仅需要发起此调用一次,但再次调用也无妨。建议你在你的应用的初始化代码中放置此次调用。这样可确保在你采用本地方式更新磁贴、请求推送通知通道,或开始对磁贴进行定期更新之前发起此次调用。


notifications.TileUpdateManager.createTileUpdaterForApplication().enableNotificationQueue(true);

步骤 3: 创建磁贴通知

这是所有磁贴通知中的第一步且这种情形与其他任何情形没有区别,此处包含该步骤仅用于完整性。有关详细信息,请参阅快速入门:发送磁贴更新

注意  在 Windows 8 系统中调用 getTemplateContent 时,它会返回版本 1 模板。在 Windows 8.1 系统中调用此方法时,它会返回版本 2 模板版本 3 模板(仅适用于电话模板的情况下)。但是,如果应用在其清单中指定了 Windows 8 兼容性,则无论 Windows 是什么版本,该方法都会返回版本 1 模板。本主题中使用版本 2 模板。

 


var template = notifications.TileTemplateType.tileWide310x150ImageAndText01;                      
var tileXml = notifications.TileUpdateManager.getTemplateContent(template);

// TO DO: Fill in the template with your tile content. Define a tile and add it to tileXML.

var tileNotification = new notifications.TileNotification(tileXml);

步骤 4: 可选:为通知赋予标记

标记为不超过 16 个字母数字字符的字符串加上终止 NULL 字符,用于唯一标识应用中的通知。

启用队列时,最多可在磁贴上自动循环显示五个磁贴通知。默认情况下,队列中通知的替换策略是先进先出 (FIFO);当队列排满且到达新通知时,最早的通知将被删除。请注意,通知显示顺序不遵守严格的线性模式。用户可看到通知的顺序与其到达时的顺序并不相同。

若要覆盖 FIFO 队列行为,则可以为通知赋予标记。如果到达的新通知与现有通知拥有相同的标记,则新通知将替换现有通知,而不管现有通知在队列中位于何处。例如,如果你的磁贴显示股票价格,而你希望显示最新的信息。使用标记替换队列中的通知是可选项。

有关对通知队列使用标记的详细信息,请参阅使用通知队列。下例展示如何为本地通知设置标记。有关为定期更新设置标记的信息,请参阅 Tileupdater.startPeriodicUpdateBatch。有关为推送通知设置标记的信息,请参阅推送通知服务请求和响应头

tileNotification.tag = "stockMSFT";

步骤 5: 向磁贴发送通知


notifications.TileUpdateManager.createTileUpdaterForApplication().update(tileNotification);

相关主题

快速入门:发送磁贴更新

应用磁贴和锁屏提醒示例

磁贴和 Toast 图像大小

磁贴和磁贴通知概述

磁贴指南和清单