Raccolte di notifiche delle app

Usa le raccolte per organizzare le notifiche dell'app nel Centro notifiche. Le raccolte consentono agli utenti di individuare le informazioni più facilmente e consentire agli sviluppatori di gestire meglio le notifiche.

Un'app di messaggistica, ad esempio, può separare le notifiche in base al gruppo di chat. Ogni titolo di gruppo ("Comp Sci 160A Project Chat", "Direct Messages", "Lacrosse Team Chat") è una raccolta separata. Le notifiche vengono raggruppate come se fossero provenienti da un'app separata, anche se tutte provengono dalla stessa app. Per un modo più sottile per organizzare le notifiche, vedi Intestazioni di notifica dell'app.

Esempio di raccolta con due diversi gruppi di notifiche

Annotazioni

Gli esempi di codice in questo articolo usano lo spazio dei nomi per compilare il contenuto delle notifiche e lo spazio dei nomi />

Per altre informazioni sulle notifiche delle app, vedere Panoramica delle notifiche delle app.

Creare una raccolta

Quando si crea una raccolta, specificare un nome visualizzato e un'icona, visualizzati nel Centro notifiche come parte del titolo della raccolta. Le raccolte richiedono anche un argomento di avvio per consentire all'app di passare alla posizione corretta quando l'utente fa clic sul titolo della raccolta. Creare la raccolta chiamando SaveToastCollectionAsync.

using Windows.UI.Notifications;

var collection = new ToastCollection(
    "MyToastCollection",
    "Work Email",
    "NavigateToWorkEmailInbox",
    new Uri("ms-appx:///Assets/workEmail.png"));

await ToastNotificationManager.GetDefault()
    .GetToastCollectionManager()
    .SaveToastCollectionAsync(collection);

Inviare una notifica a una raccolta

Usare AppNotificationBuilder per costruire il contenuto della notifica, quindi chiamare GetToastNotifierForToastCollectionIdAsync per ottenere un notifier con ambito alla raccolta.

using Microsoft.Windows.AppNotifications.Builder;
using Windows.UI.Notifications;
using Windows.Data.Xml.Dom;

// Build notification content with Windows App SDK
var payload = new AppNotificationBuilder()
    .AddText("Adam sent a message to the group")
    .BuildNotification()
    .Payload;

// Deliver to a collection using the WinRT API
var doc = new XmlDocument();
doc.LoadXml(payload);
var toast = new ToastNotification(doc);

var notifier = await ToastNotificationManager.GetDefault()
    .GetToastNotifierForToastCollectionIdAsync("MyToastCollection");
notifier.Show(toast);

Elencare tutte le raccolte

Recuperare tutte le raccolte create per l'app chiamando FindAllToastCollectionsAsync.

var collectionManager = ToastNotificationManager.GetDefault().GetToastCollectionManager();
var collections = await collectionManager.FindAllToastCollectionsAsync();

Aggiornare una raccolta

Aggiornare una raccolta creando una nuova istanza di ToastCollection con lo stesso ID e chiamando SaveToastCollectionAsync.

var collectionManager = ToastNotificationManager.GetDefault().GetToastCollectionManager();

var updatedCollection = new ToastCollection(
    "MyToastCollection",
    "Updated Display Name",
    "UpdatedLaunchArgs",
    new Uri("ms-appx:///Assets/updatedPicture.png"));

await collectionManager.SaveToastCollectionAsync(updatedCollection);

Rimozione di una collezione

Rimuovere una raccolta chiamando RemoveToastCollectionAsync con l'ID raccolta. Tutte le notifiche nella raccolta vengono rimosse anche dal Centro notifiche.

var collectionManager = ToastNotificationManager.GetDefault().GetToastCollectionManager();
await collectionManager.RemoveToastCollectionAsync("MyToastCollection");

Rimuovere le notifiche all'interno di una raccolta

Usare le proprietà Tag e Group per identificare e rimuovere singole notifiche all'interno di una raccolta chiamando Rimuovi o cancellare tutte le notifiche contemporaneamente con Clear.

var collectionHistory = await ToastNotificationManager.GetDefault()
    .GetHistoryForToastCollectionAsync("MyToastCollection");

// Remove a specific notification
collectionHistory.Remove(tag, group);

// Or clear all notifications in the collection
collectionHistory.Clear();

Vedere anche