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.
As notificações agendadas app permitem que você programe uma notificação para aparecer em um momento posterior, não importando se seu app está em execução naquele momento. Isso é útil para cenários como exibir lembretes ou outras tarefas de acompanhamento para o usuário, em que o tempo e o conteúdo da notificação são conhecidos antecipadamente.
Observe que as notificações agendadas app têm uma janela de entrega de 5 minutos. Se o computador estiver desativado durante o tempo de entrega agendado e permanecer desativado por mais de 5 minutos, a notificação será "descartada" como não mais relevante para o usuário. Se você precisar de entrega garantida de notificações independentemente de quanto tempo o computador estava desativado, recomendamos usar uma tarefa em segundo plano com um gatilho de tempo, conforme ilustrado neste exemplo de código.
Note
O termo "toast notificação" está sendo substituído por "app notificação". Esses termos se referem ao mesmo recurso do Windows, mas, com o tempo, eliminaremos gradualmente o uso de "toast notificação" na documentação.
Important
Os aplicativos da área de trabalho (empacotados e não empacotados) têm etapas ligeiramente diferentes para enviar notificações e lidar com a ativação. Siga as instruções abaixo; porém, substitua
APIs importantes: Classe ScheduledToastNotification
Prerequisites
Para entender completamente este tópico, o seguinte será útil...
- Um conhecimento prático dos termos e conceitos de notificação app. Para obter mais informações, consulte Toast e a visão geral da central de ações.
- Uma familiaridade com o conteúdo da notificação do Windows 10 app . Para obter mais informações, consulte App a documentação do conteúdo da notificação.
- Um projeto UWP app do Windows 10
Etapa 1: Instalar o pacote NuGet
Instale o pacote NuGet Microsoft.Toolkit.Uwp.Notifications. Nosso exemplo de código usará esse pacote. No final do artigo, forneceremos os trechos de código simples que não usam nenhum pacote NuGet. Esse pacote permite que você crie app notificações sem usar XML.
Etapa 2: Adicionar declarações de namespace
using Microsoft.Toolkit.Uwp.Notifications; // Notifications library
Etapa 3: Agendar a notificação
Usaremos uma notificação simples baseada em texto lembrando um aluno sobre a lição de casa que eles devem fazer hoje. Construa a notificação e agende-a!
// Construct the content and schedule the toast!
new ToastContentBuilder()
.AddArgument("action", "viewItemsDueToday")
.AddText("ASTR 170B1")
.AddText("You have 3 items due today!");
.Schedule(DateTime.Now.AddSeconds(5));
Fornecer uma chave primária para sua notificação
Se você quiser cancelar, remover ou substituir a notificação agendada programaticamente, precisará usar a propriedade Tag (e, opcionalmente, a propriedade Group) para fornecer uma chave primária para sua notificação. Em seguida, você pode usar essa chave primária no futuro para cancelar, remover ou substituir a notificação.
Para ver mais detalhes sobre como substituir/remover notificações já entregues app , consulte Início Rápido: Gerenciando toast notificações na central de ações (XAML).
A tag e o grupo combinados funcionam como uma chave primária composta. O grupo é o identificador mais genérico, onde você pode criar grupos como "wallPosts", "messages", "friendRequests" etc. Em seguida, a tag deve identificar exclusivamente a notificação propriamente dita dentro do grupo. Usando um grupo genérico, você pode remover todas as notificações desse grupo usando a API RemoveGroup.
// Construct the content and schedule the toast!
new ToastContentBuilder()
.AddArgument("action", "viewItemsDueToday")
.AddText("ASTR 170B1")
.AddText("You have 3 items due today!");
.Schedule(DateTime.Now.AddSeconds(5), toast =>
{
toast.Tag = "18365";
toast.Group = "ASTR 170B1";
});
Cancelar notificações agendadas
Para cancelar uma notificação agendada, primeiro você precisa recuperar a lista de todas as notificações agendadas.
Em seguida, localize a notificação agendada app que corresponda à marca (e, opcionalmente, ao grupo) que você especificou anteriormente, e chame RemoveFromSchedule().
// Create the toast notifier
ToastNotifierCompat notifier = ToastNotificationManagerCompat.CreateToastNotifier();
// Get the list of scheduled toasts that haven't appeared yet
IReadOnlyList<ScheduledToastNotification> scheduledToasts = notifier.GetScheduledToastNotifications();
// Find our scheduled toast we want to cancel
var toRemove = scheduledToasts.FirstOrDefault(i => i.Tag == "18365" && i.Group == "ASTR 170B1");
if (toRemove != null)
{
// And remove it from the schedule
notifier.RemoveFromSchedule(toRemove);
}
Important
Um Win32 app não empacotado (não tem identidade de pacote no runtime) deve usar a classe ToastNotificationManagerCompat , conforme visto acima. Se você usar ToastNotificationManager por si só, receberá uma exceção de elemento não encontrado. Todos os tipos de aplicativos podem usar a classe Compat e funcionarão corretamente.
Activation handling
Confira a documentação sobre como enviar uma notificação local app para saber mais sobre como lidar com a ativação. A ativação de uma notificação agendada app é tratada da mesma forma que a ativação de uma notificação local app .
Adicionando ações, entradas e muito mais
Confira a documentação sobre como enviar notificações locais app para saber mais sobre tópicos avançados, como ações e entradas. Ações e entradas funcionam da mesma forma em notificações locais app como em notificações agendadas app .
Resources
Windows developer