Notificação do sistema com ativação de atualização pendente

Você pode usar PendingUpdate para criar interações multietapas nas notificações do sistema. Por exemplo, conforme visto abaixo, você pode criar uma série de notificações do sistema em que as notificações subsequentes dependem de respostas das anteriores.

Notificação do sistema com atualizações pendentes

Importante

Requer Atualização de Criadores de Outono da Área de Trabalho e 2.0.0 da biblioteca de Notificações: você deve estar executando o build da área de trabalho 16299 ou posterior para ver o trabalho de atualização pendente. Você deve usar a versão 2.0.0 ou posterior da biblioteca NuGet de Notificações do Kit de Ferramentas da Comunidade UWP para atribuir PendingUpdate em seus botões. PendingUpdate é suportada somente na Área de trabalho e será ignorada em outros dispositivos.

Pré-requisitos

Este artigo presume um conhecimento prático de...

Visão geral

Para implementar uma notificação do sistema que usa uma atualização pendente como comportamento após a ativação...

  1. Nos botões de ativação em segundo plano, especifique um AfterActivationBehavior de PendingUpdate

  2. Atribuir uma Marca (e, como alternativa, Grupo) ao enviar a notificação do sistema

  3. Quando o usuário clica no botão, sua tarefa em segundo plano será ativada e a notificação do sistema será mantida na tela em um estado de atualização pendente

  4. Na tarefa em segundo plano, envie uma nova notificação do sistema com o novo conteúdo, usando a mesma Marca e Grupo

Atribuir PendingUpdate

Nos botões de ativação em segundo plano, defina um AfterActivationBehavior para PendingUpdate Observe que isso funciona somente para botões que com um ActivationType de Background.

new ToastContentBuilder()

    .AddText("Would you like to order lunch today?")

    .AddButton(new ToastButton("Yes", "action=orderLunch")
    {
        ActivationType = ToastActivationType.Background,

        ActivationOptions = new ToastActivationOptions()
        {
            AfterActivationBehavior = ToastAfterActivationBehavior.PendingUpdate
        }
    });

Usar uma Marca na notificação

Para substituir a notificação posteriormente, é preciso atribuir a Marca (e, opcionalmente, o Grupo) na notificação.

// Create the notification
var notif = new ToastNotification(content.GetXml())
{
    Tag = "lunch"
};

// And show it
ToastNotificationManager.CreateToastNotifier().Show(notif);

Substituir a notificação do sistema pelo novo conteúdo

Em resposta ao clique do usuário no botão, a tarefa em segundo plano é disparada e você deve substituir a notificação do sistema pelo novo conteúdo. Você substitui a notificação do sistema ao enviar uma nova notificação do sistema com a mesma Marca e Grupo.

É altamente recomendável ajustar o áudio para o modo silencioso nas substituições em resposta a um clique de botão, pois o usuário já está interagindo com a notificação do sistema.

// Generate new content
ToastContent content = new ToastContent()
{
    ...

    // We disable audio on all subsequent toasts since they appear right after the user
    // clicked something, so the user's attention is already captured
    Audio = new ToastAudio() { Silent = true }
};

// Create the new notification
var notif = new ToastNotification(content.GetXml())
{
    Tag = "lunch"
};

// And replace the old one with this one
ToastNotificationManager.CreateToastNotifier().Show(notif);