使用集合將快顯通知分組
使用集合來組織重要訊息中心內的應用程式快顯。 集合可協助使用者更容易在重要訊息中心內找到資訊,並且讓開發人員更妥善管理其通知。 下列 API 允許移除、建立和更新通知集合。
重要
需要 Creators Update:您必須以 SDK 15063 為目標,並執行組建 15063 或更新版本,才能使用快顯集合。 相關 API 包括 Windows.UI.Notifications.ToastCollection 和 Windows.UI.Notifications.ToastCollectionManager
您可以在下列範例中看到傳訊應用程式,範例會根據聊天群組來區分通知;每個標題 (Comp Sci 160A Project Chat、Direct Messages、Lacrosse Team Chat) 都是個別的集合。 請注意通知的分組方式,就像是來自個別應用程式一樣,即使這些通知都是來自同一個應用程式的通知。 如果您要尋找更精細的方式來組織通知,請參閱快顯標頭。
建立集合
建立每個集合時,您必須提供顯示名稱和圖示,這兩項資訊會在重要訊息中心內隨集合標題一併顯示,如上方影像所示。 集合也需要一個啟動引數,以協助應用程式在使用者按一下集合標題時,瀏覽至應用程式內的正確位置。
建立集合
// Create a toast collection
public async void CreateToastCollection()
{
string displayName = "Work Email";
string launchArg = "NavigateToWorkEmailInbox";
Uri icon = new Windows.Foundation.Uri("ms-appx:///Assets/workEmail.png");
// Constructor
ToastCollection workEmailToastCollection = new ToastCollection(
"MyToastCollection",
displayName,
launchArg,
icon);
// Calls the platform to create the collection
await ToastNotificationManager.GetDefault().GetToastCollectionManager().SaveToastCollectionAsync(workEmailToastCollection);
}
傳送通知至集合
我們將說明從三種不同的快顯管道傳送通知的方式:本機、排定和推播。 我們將在每一個範例中建立範例快顯,並隨其正下方的程式碼一起傳送,然後我們將著重在如何透過每一種管道將快顯新增至集合。
建構快顯內容:
// Construct the content
var content = new ToastContentBuilder()
.AddText("Adam sent a message to the group")
.GetToastContent();
將快顯傳送至集合
// Create the toast
ToastNotification toast = new ToastNotification(content.GetXml());
// Get the collection notifier
var notifier = await ToastNotificationManager.GetDefault().GetToastNotifierForToastCollectionIdAsync("MyToastCollection");
// And show the toast
notifier.Show(toast);
將排定快顯新增至集合
// Create scheduled toast from XML above
ScheduledToastNotification scheduledToast = new ScheduledToastNotification(content.GetXml(), DateTimeOffset.Now.AddSeconds(10));
// Get notifier
var notifier = await ToastNotificationManager.GetDefault().GetToastNotifierForToastCollectionIdAsync("MyToastCollection");
// Add to schedule
notifier.AddToSchedule(scheduledToast);
將推播快顯傳送至集合
若是推播快顯,您需要將 X-WNS-CollectionId 標頭新增至 POST 訊息。
// Add header to HTTP request
request.Headers.Add("X-WNS-CollectionId", collectionId);
管理集合
建立快顯集合管理員
針對此「管理集合」一節中的其餘程式碼片段,我們將使用下面的 collectionManager。
ToastCollectionManger collectionManager = ToastNotificationManager.GetDefault().GetToastCollectionManager();
取得所有集合
IReadOnlyList<ToastCollection> collections = await collectionManager.FindAllToastCollectionsAsync();
取得建立的集合數目
int toastCollectionCount = (await collectionManager.FindAllToastCollectionsAsync()).Count;
移除集合
await collectionManager.RemoveToastCollectionAsync("MyToastCollection");
更新集合
您可以藉由建立具有相同識別碼的新集合並儲存集合的新執行個體來更新集合。
string displayName = "Updated Display Name";
string launchArg = "UpdatedLaunchArgs";
Uri icon = new Windows.Foundation.Uri("ms-appx:///Assets/updatedPicture.png");
// Construct a new toast collection with the same collection id
ToastCollection updatedToastCollection = new ToastCollection(
"MyToastCollection",
displayName,
launchArg,
icon);
// Calls the platform to update the collection by saving the new instance
await collectionManager.SaveToastCollectionAsync(updatedToastCollection);
管理集合內的快顯
群組和標籤屬性
群組搭配標籤屬性可做為集合內通知的唯一識別。 Group (和 Tag) 可做為複合主索引鍵 (多個識別碼) 來識別您的通知。 例如,如果您想要移除或取代通知,則必須能夠指定您要移除/取代的通知;做法是指定 Tag 和 Group。 傳訊應用程式就可做為範例。 開發人員可以使用交談識別碼做為 Group,並將訊息識別碼做為 Tag。
從集合中移除快顯
您可以使用標籤和群組識別碼來移除個別快顯,或清除集合中的所有快顯。
// Get the history
var collectionHistory = await ToastNotificationManager.GetDefault().GetHistoryForToastCollectionAsync("MyToastCollection");
// Remove toast
collectionHistory.Remove(tag, group);
清除集合內的所有快顯
// Get the history
var collectionHistory = await ToastNotificationManager.GetDefault().GetHistoryForToastCollectionAsync("MyToastCollection");
// Remove toast
collectionHistory.Clear();
通知視覺化工具中的集合
您可以使用通知視覺化工具來協助您設計集合。 請執行以下步驟:
- 按一下右下角的齒輪圖示。
- 選取 [快顯集合]。
- 快顯的預覽上方會顯示 [快顯集合] 下拉式功能表。 選取 [管理集合]。
- 按一下 [新增集合],填入集合的詳細資料,然後儲存。
- 您可以新增更多集合,或按一下以離開 [管理集合] 方塊並返回主畫面。
- 從 [快顯集合] 下拉式功能表中選取要在其中新增快顯的集合。
- 當您引發快顯時,該快顯將會新增至重要訊息中心內的適當集合。
其他詳細資料
您建立的快顯集合也會反映在使用者的通知設定中。 使用者可以切換每個個別集合的設定,以開啟或關閉這些子群組。 如果在最上層關閉應用程式的通知,則所有集合通知也會一併關閉。 此外,每個集合預設會在重要訊息中心內顯示 3 則通知,而且使用者可以將它展開以顯示最多 20 則通知。