Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Depois de enviar uma notificação de aplicação, pode ser necessário removê-la do Centro de Notificações quando já não for relevante, ou controlar quanto tempo persiste. A classe AppNotificationManager fornece métodos para remover notificações, e a classe AppNotification fornece propriedades para controlar automaticamente quando as notificações expiram.
Para mais informações sobre as notificações da aplicação, consulte Visão Geral das notificações da aplicação.
Remover notificações do Centro de Notificações
Para remover notificações específicas, atribua primeiro valores de Tag e Group quando os mostrar. Uma Etiqueta identifica uma notificação específica, e um Grupo identifica um conjunto de notificações relacionadas. Por exemplo, uma aplicação de mensagens pode usar o ID do chat como Grupo e o nome do contacto como Tag.
O AppNotificationManager fornece vários métodos para remover notificações do Centro de Notificações:
| Método | Descrição |
|---|---|
| RemoveByTagAsync | Remove todas as notificações com a etiqueta especificada. |
| RemoveByGroupAsync | Remove todas as notificações no grupo especificado. |
| RemoveByTagAndGroupAsync | Remove todas as notificações com a etiqueta e o grupo especificado. |
| RemoveByIdAsync | Remove a notificação com o ID especificado. |
| RemoveAllAsync | Remove todas as notificações da aplicação. |
O exemplo seguinte mostra como marcar notificações ao enviá-las e depois removê-las mais tarde. Neste cenário, uma aplicação de mensagens remove todas as notificações de um grupo de chat depois de o utilizador ler a conversa, e depois remove todas as notificações de um contacto específico depois de o utilizador as silenciar.
using Microsoft.Windows.AppNotifications;
using Microsoft.Windows.AppNotifications.Builder;
void SendNotification(string message, string contactTag, string chatGroup)
{
var notification = new AppNotificationBuilder()
.AddText(message)
.BuildNotification();
// Tag and group the notification so it can be removed later
notification.Tag = contactTag;
notification.Group = chatGroup;
AppNotificationManager.Default.Show(notification);
}
// Remove all notifications from a specific group chat
async Task RemoveGroupChatNotifications(string chatGroup)
{
await AppNotificationManager.Default.RemoveByGroupAsync(chatGroup);
}
// Remove all notifications from a specific contact across all groups
async Task RemoveContactNotifications(string contactTag)
{
await AppNotificationManager.Default.RemoveByTagAsync(contactTag);
}
// Remove all notifications for the app
async Task RemoveAllNotifications()
{
await AppNotificationManager.Default.RemoveAllAsync();
}
Definir um tempo de expiração
Defina um tempo de expiração na sua notificação usando a propriedade Expiração se o conteúdo for relevante apenas por um determinado período de tempo. Por exemplo, uma aplicação de calendário que envie um lembrete de evento deve definir a expiração para o final do evento.
Observação
O tempo de expiração padrão e máximo para uma notificação é de 3 dias.
using Microsoft.Windows.AppNotifications;
using Microsoft.Windows.AppNotifications.Builder;
var notification = new AppNotificationBuilder()
.AddText("Team standup in 15 minutes")
.AddText("Conference Room B")
.BuildNotification();
// Remove the notification from Notification Center after one hour
notification.Expiration = DateTimeOffset.Now.AddHours(1);
AppNotificationManager.Default.Show(notification);
Notificações de expiração ao reiniciar
Defina a propriedade ExpiresOnReboot para true se quiser que uma notificação seja removida do Centro de Notificações quando o computador reiniciar. Isto é útil para notificações sensíveis ao tempo que deixam de ser significativas após um reinício, como uma chamada em curso ou um lembrete temporário.
using Microsoft.Windows.AppNotifications;
using Microsoft.Windows.AppNotifications.Builder;
var notification = new AppNotificationBuilder()
.AddText("You're sharing your screen")
.BuildNotification();
notification.ExpiresOnReboot = true;
AppNotificationManager.Default.Show(notification);
Consulte também
Windows developer