[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]
注意 不是使用 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 操作 XML 的方法。
指示
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. 選用:在徽章不再有效時予以清除
如果透過徽章數字或字符所傳達的資訊已過期或不再有幫助,就應該移除徽章。下列程式碼會從呼叫應用程式磚移除目前的徽章。您也可以傳送「無」值做為徽章更新,取代呼叫 Clear 方法。
注意 和磚不同,徽章可以透過雲端清除。
notifications.BadgeUpdateManager.createBadgeUpdaterForApplication().clear();
摘要與後續步驟
在這個快速入門中,您已定義並傳送新內容到應用程式磚上的徽章,並在徽章不再有效時予以移除。
這個快速入門將徽章更新以本機通知的形式傳送。您也可以探索其他通知傳遞方法:排程、定期及推播。如需詳細資訊,請參閱傳遞通知。