Compartilhar via


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

Você pode usar PendingUpdate para criar interações de várias etapas em suas notificações do sistema. Por exemplo, como visto abaixo, você pode criar uma série de notificações do sistema em que as notificações do sistema subsequentes dependem das respostas das notificações do sistema anteriores.

Brinde com atualização pendente

Importante

Requer o Desktop Fall Creators Update e a versão 2.0.0 da biblioteca de notificações: você deve estar executando o build 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 só tem suporte no desktop e será ignorado em outros dispositivos.

Pré-requisitos

Este artigo pressupõe um conhecimento prático de...

Visão geral

Para implementar uma notificação do sistema que usa atualização pendente como seu comportamento pós-ativação...

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

  2. Atribuir uma Tag (e, opcionalmente, Agrupar) ao enviar sua notificação do sistema

  3. Quando o usuário clicar 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 Tag e Grupo

Atribuir PendingUpdate

Nos botões de ativação em segundo plano, defina o AfterActivationBehavior como PendingUpdate. Observe que isso só funciona para botões que têm 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 tag na notificação

Para substituir posteriormente a notificação, temos que atribuir a Tag (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 por um novo conteúdo

Em resposta ao usuário clicar no botão, sua tarefa em segundo plano é acionada e você precisa substituir a notificação do sistema por um novo conteúdo. Você substitui a notificação do sistema simplesmente enviando uma nova notificação do sistema com a mesma Tag e Grupo.

É altamente recomendável definir o áudio como silencioso em substituições em resposta a um clique de botão, pois o usuário já está interagindo com sua 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);