Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Depois de enviar uma notificação do aplicativo, talvez seja necessário removê-la da Central de Notificações quando ela não for mais relevante ou controlar por quanto tempo ela persiste. A classe AppNotificationManager fornece métodos para remover notificações e a classe AppNotification fornece propriedades para controlar quando as notificações expiram automaticamente.
Para obter mais informações sobre notificações do aplicativo, consulte a visão geral das notificações do aplicativo.
Remover notificações da Central de Notificações
Para remover notificações específicas, primeiro atribua valores de Marca e Grupo ao mostrá-las. Uma marca identifica uma notificação específica e um Grupo identifica um conjunto de notificações relacionadas. Por exemplo, um aplicativo de mensagens poderia usar a ID do thread de chat como o Grupo e o nome do contato como a Marca.
AppNotificationManager fornece vários métodos para remover notificações da Central de Notificação:
| 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 tag e o grupo especificados. |
| RemoveByIdAsync | Remove a notificação com a ID especificada. |
| RemoveAllAsync | Remove todas as notificações do aplicativo. |
O exemplo a seguir mostra como marcar notificações ao enviá-las e removê-las mais tarde. Nesse cenário, um aplicativo de mensagens remove todas as notificações de um chat em grupo depois que o usuário lê a conversa e remove todas as notificações de um contato específico depois que o usuário as silencia.
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 em sua notificação usando a propriedade Expiration se o conteúdo for relevante apenas por um determinado período de tempo. Por exemplo, um aplicativo de calendário que envia 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);
Expirar notificações na reinicialização
Defina a propriedade ExpiresOnReboot para true se você quiser que uma notificação seja removida da Central de Notificação quando o computador for reiniciado. Isso é útil para notificações sensíveis ao tempo que não são mais significativas após uma reinicialização, como uma chamada em andamento 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