Recolhas de notificações de aplicações

Use coleções para organizar as notificações da sua app no Centro de Notificações. As coleções ajudam os utilizadores a localizar informação mais facilmente e permitem aos programadores gerir melhor as suas notificações.

Uma aplicação de mensagens, por exemplo, pode separar as notificações por grupo de chat. Cada título de grupo ("Comp Sci 160A Project Chat", "Mensagens Diretas", "Chat de Equipa de Lacrosse") é uma coleção separada. As notificações são agrupadas como se fossem de uma aplicação separada, mesmo que todas venham da mesma aplicação. Para uma forma mais subtil de organizar as notificações, veja Cabeçalhos de notificações da App.

Exemplo de coleção com dois grupos diferentes de notificações

Observação

Os exemplos de código neste artigo utilizam o espaço de nomes Microsoft.Windows.AppNotifications para construir conteúdo de notificações e o espaço de nomes Windows.UI.Notifications para gestão de coleções. Estes dois namespaces podem ser usados juntos na mesma aplicação.

Para mais informações sobre as notificações da aplicação, consulte Visão Geral das notificações da aplicação.

Criar uma coleção

Ao criar uma coleção, forneça um nome de exibição e um ícone, que são mostrados no Centro de Notificações como parte do título da coleção. As coleções também requerem um argumento de lançamento para que a sua aplicação possa navegar para o local certo quando o utilizador clicar no título da coleção. Crie a coleção chamando 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);

Envie uma notificação para uma coleção

Use AppNotificationBuilder para construir o conteúdo da notificação, depois chame GetToastNotifierForToastCollectionIdAsync para obter um notifier associado à coleção.

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

Listar todas as coleções

Recupere todas as coleções criadas para a sua aplicação chamando FindAllToastCollectionsAsync.

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

Atualizar uma coleção

Atualize uma coleção criando uma nova instância ToastCollection com o mesmo ID e chamando 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);

Remover uma coleção

Remova uma coleção chamando RemoveToastCollectionAsync com o ID da coleção. Quaisquer notificações na coleção também são removidas do Centro de Notificações.

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

Remover notificações dentro de uma coleção

Use as propriedades Etiqueta e Grupo para identificar e remover notificações individuais dentro de uma coleção, chamando Remover, ou limpar todas as notificações de uma vez com Limpar.

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 também