Recopilaciones de notificaciones de aplicaciones

Usa colecciones para organizar las notificaciones de la aplicación en el Centro de notificaciones. Las recopilaciones ayudan a los usuarios a localizar información más fácilmente y permiten a los desarrolladores administrar mejor sus notificaciones.

Una aplicación de mensajería, por ejemplo, puede separar las notificaciones por grupo de chat. Cada título de grupo ("Comp Sci 160A Project Chat", "Direct Messages", "Lacrosse Team Chat") es una colección independiente. Las notificaciones se agrupan como si fueran de una aplicación independiente, aunque todas proceden de la misma aplicación. Para obtener una manera más sutil de organizar las notificaciones, consulte Encabezados de notificación de aplicación.

Ejemplo de colección con dos grupos de notificaciones diferentes

Nota:

En los ejemplos de código de este artículo se usa el espacio de nombres Microsoft.Windows.AppNotifications para crear contenido de notificación y el espacio de nombres Windows.UI.Notifications para la administración de colecciones. Estos dos espacios de nombres se pueden usar juntos en la misma aplicación.

Para obtener más información sobre las notificaciones de la aplicación, consulte Introducción a las notificaciones de aplicaciones.

Creación de una colección

Al crear una colección, proporcione un nombre para mostrar y un icono, que se muestran en el Centro de notificaciones como parte del título de la colección. Las colecciones también requieren un argumento de inicio para que la aplicación pueda navegar a la ubicación correcta cuando el usuario hace clic en el título de la colección. Cree la colección llamando a 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);

Envío de una notificación a una colección

Use AppNotificationBuilder para construir el contenido de la notificación y, a continuación, llame a GetToastNotifierForToastCollectionIdAsync para obtener un notificador específico de la colección.

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

Enumerar todas las colecciones

Recupere todas las colecciones creadas para la aplicación llamando a FindAllToastCollectionsAsync.

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

Actualizar una colección

Actualice una colección creando una nueva instancia de ToastCollection con el mismo identificador y llamando a 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);

Quitar una colección

Quite una colección llamando a RemoveToastCollectionAsync con el identificador de colección. Las notificaciones de la colección también se quitan del Centro de notificaciones.

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

Eliminación de notificaciones dentro de una colección

Use las propiedades Etiqueta y Grupo para identificar y quitar notificaciones individuales dentro de una colección llamando a Remove o borra todas las notificaciones a la vez 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();

Consulte también