语言: HTML | XAML

快速入门:设置定期通知 (XAML)

注意  不使用 C#/VB/C++?请参阅快速入门:设置定期通知 (HTML)

此主题显示了如何为应用磁贴的更新内容启动 URL 定期轮询。

要查看本快速入门中提供的 JavaScript 示例版本,请参阅如何为磁贴设置定期通知 (JavaScript)

我们建议所有已轮询通知都利用 X-WNS-Expires HTTP 响应头来设置一个显式过期时间。有关设置 X-WNS-Expires 的详细信息,请参阅 TileUpdater.StartPeriodicUpdateTileUpdater.StartPeriodicUpdateBatch

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

先决条件

说明

1. 创建或标识用于托管磁贴的 XML 内容的 Web 服务

Windows 会以指定的时间间隔为应用的更新磁贴内容轮询指定的 Web 服务。Web 服务必须支持 HTTP。对于测试,还可以设置 Web 服务,如本地计算机上用于测试 XML 的 Microsoft Internet Information Service (IIS)。

2. 将磁贴内容的 XML 文件放入可以访问 Web 的位置

Web 服务将托管磁贴 XML 内容。若要开始,请托管网站上此处显示的磁贴 XML。将此内容另存为名为 Tile.xml 的文件并将该文件放在服务器上可以访问 Web 的位置(例如,http://www.fabrikam.com/tile.xml)。XML 文档的内容必须使用 UTF-8 编码并符合磁贴架构。应至少按照指定轮询定期时间间隔的频率更新此 XML。



<tile>
  <visual version="2">
    <binding template="TileSquare150x150Text04" fallback="TileSquareText04">
      <text id="1">Hello world!</text>
    </binding>  
  </visual>
</tile>

3. 开始定期更新(单一 URL)

此示例显示了如何每小时开始轮询单一 URL 一次来为磁贴提供新内容。此代码使用之前定义的名为 polledUrl 的变量,该变量是指定要轮询的 URL 的一个字符串。



using Windows.UI.Notifications;

PeriodicUpdateRecurrence recurrence = PeriodicUpdateRecurrence.Hour;
System.Uri url = new System.Uri(polledUrl);

TileUpdateManager.CreateTileUpdaterForApplication().StartPeriodicUpdate(url, recurrence);

4. 开始定期更新(多个 URL)

作为前一个步骤的一种替代方法,Windows 可以轮询最多五个不同的 URL 来提供一组在磁贴的通知队列中循环的内容。

此示例显示了如何每小时轮询一次新内容的多个 URL。首先,你必须启用通知队列(如果先前未启用它)。请注意,对 EnableNotificationQueue 的调用仅应该在用户安装应用或创建辅助磁贴之后进行一次。此示例代码使用称为 urisToPoll 的先前定义的变量,该变量是一个 URL 对象数组,其中每个对象代表一个从中获取已轮询内容的不同 URL。

注意  定期磁贴更新支持作为通知队列替换逻辑的一部分的磁贴通知标记。你的服务可以通过提供 X-WNS-Tag HTTP 响应头在每个通知上设置该标记。有关使用标记和通知队列的详细信息,请参阅如何借助本地通知使用通知队列。有关将 X-WNS-Tag HTTP 响应头与定期通知结合使用的详细信息,请参阅 TileUpdater.StartPeriodicUpdateBatch


using Windows.UI.Notifications;

TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true);

PeriodicUpdateRecurrence recurrence = PeriodicUpdateRecurrence.Hour;
TileUpdateManager.CreateTileUpdaterForApplication().StartPeriodicUpdateBatch(urisToPoll, recurrence);

摘要和后续步骤

本快速入门指导你完成定期磁贴通知的设置。可以针对锁屏提醒使用同样的技术。

相关主题

推送和定期通知示例
定期通知指南
如何将通知队列与本地通知结合使用

 

 

显示:
© 2015 Microsoft