如何使用通知佇列 (HTML)
[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]
注意 不是使用 JavaScript?請參閱如何使用通知佇列 (XAML)。
這個主題顯示如何在磚上啟用通知佇列,本案例使用本機通知。文中也顯示如何先在通知加上標籤再傳送,避免讓重複或過時的內容出現在佇列中。啟用通知佇列時,Windows 最多可循環使用 5 個通知。
若要查看這個快速入門中提供的 C#、C++ 或 Visual Basic 版本的 JavaScript 範例,請參閱如何使用通知佇列 (C#、C++ 或 Visual Basic)。
注意 在這個快速入門中,您將直接透過 XML 文件物件模型 (DOM) 來操作通知內容。另外還有透過 NotificationsExtensions 程式庫的選擇性方法,這個程式庫會以物件屬性的形式呈現 XML 內容,包含 Intellisense。如需詳細資訊,請參閱快速入門:在程式碼中使用 NotificationsExtensions 程式庫。若要查看這個快速入門中以 NotificationsExtenstions 表示的程式碼,請參閱應用程式磚和徽章範例。
您必須知道的事
技術
- Windows Runtime
先決條件
為了解這個主題,您將需要:
- 磚與通知詞彙及概念的實用知識。如需詳細資訊,請參閱磚、徽章及通知。
- 熟悉磚 XML 結構描述。如需詳細資訊,請參閱磚結構描述。
- 能夠使用 Windows 執行階段 API 透過 JavaScript 建立基本 Windows 市集應用程式的能力。如需詳細資訊,請參閱使用 JavaScript 建立您的第一個 Windows 市集應用程式。
- 您應用程式現有的預設磚 (在您的應用程式資訊清單中定義)。如需詳細資訊,請參閱快速入門:使用 Microsoft Visual Studio 資訊清單編輯器建立預設磚。
- 熟悉 XML 和透過文件物件模型 (DOM) API 操作 XML 的方法。
指示
步驟 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 字元),可在應用程式內唯一識別通知。
佇列啟用時,最多可以有 5 個磚通知在磚上自動循環。根據預設,佇列中的通知取代原則為先進先出 (FIFO);當佇列已滿又有新的通知送達時,會移除最舊的通知。請注意,通知顯示順序不會遵循嚴格的線性模式。使用者可能看到通知以不同於到達的順序出現。
若要覆寫 FIFO 佇列行為,可以在通知加上標記。如果送達的新通知與現有的通知有相同的標記,無論舊通知在佇列中的哪個位置,新通知都會取代舊通知。例如,如果您的磚是顯示股價,您想要顯示最新的資訊。您可以視需要選擇使用標記來取代佇列中的通知。
如需搭配通知佇列使用標記的詳細資訊,請參閱使用通知佇列。以下範例顯示如何為本機通知設定標記。如需為定期更新設定標記的相關資訊,請參閱Tileupdater.startPeriodicUpdateBatch。如需為推播通知設定標記的相關資訊,請參閱推播通知服務要求和回應標頭。
tileNotification.tag = "stockMSFT";
步驟 5: 將通知傳送至磚
notifications.TileUpdateManager.createTileUpdaterForApplication().update(tileNotification);