[ 本文的目標對象是撰寫 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 表示的程式碼,請參閱應用程式磚和徽章範例

 

先決條件

為了解這個主題,您將需要:

指示

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();

摘要與後續步驟

在這個快速入門中,您已定義並傳送新內容到應用程式磚上的徽章,並在徽章不再有效時予以移除。

這個快速入門將徽章更新以本機通知的形式傳送。您也可以探索其他通知傳遞方法:排程、定期及推播。如需詳細資訊,請參閱傳遞通知

相關主題

徽章概觀

徽章結構描述

BadgeTemplateType

BadgeNotification

快速入門:設定定期通知