Compartir a través de


Notificación del sistema con activación de actualización pendiente

Puede usar PendingUpdate para crear interacciones de varios pasos en las notificaciones emergentes. Por ejemplo, como se muestra a continuación, puede crear una serie de notificaciones en las que las notificaciones posteriores dependen de las respuestas de las notificaciones anteriores.

Toast con actualización pendiente

Important

requiere la Actualización para Creadores de Otoño de Windows 10 y la versión 2.0.0 de la biblioteca de Notificaciones: deberías estar ejecutando la compilación de escritorio 16299 o una versión posterior para ver las actualizaciones pendientes. Debes usar la versión 2.0.0 o posterior de la biblioteca NuGet Notificaciones del kit de herramientas de la comunidad de UWP para asignar PendingUpdate en tus botones. PendingUpdate solo se admite en escritorio y se omitirá en otros dispositivos.

Prerequisites

En este artículo se da por supuesto un conocimiento práctico de...

Overview

Para implementar una notificación tipo "toast" que utiliza la actualización pendiente como su comportamiento posterior a la activación...

  1. En los botones de activación en segundo plano del sistema, especifique un AfterActivationBehavior de PendingUpdate

  2. Asignar una etiqueta (y opcionalmente el grupo ) al enviar tu notificación emergente

  3. Cuando el usuario hace clic en tu botón, se activará tu tarea en segundo plano y el toast se mantendrá en pantalla en un estado de actualización pendiente.

  4. En la tarea en segundo plano, envíe una nueva notificación del sistema con el nuevo contenido, con el mismo etiqueta y Group

Assign PendingUpdate

En los botones de activación en segundo plano, establezca el AfterActivationBehavior en PendingUpdate. Tenga en cuenta que esto solo funciona para los botones que tienen un 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 una etiqueta en la notificación

Para reemplazar posteriormente la notificación, tenemos que asignar la etiqueta (y, opcionalmente, el grupo ) a la notificación.

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

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

Reemplazar el mensaje por nuevo contenido

En respuesta a que el usuario haga clic en su botón, se activa la tarea en segundo plano y necesita reemplazar la notificación emergente por contenido nuevo. Reemplace el toast simplemente enviando un nuevo toast con la misma etiqueta y grupo.

Se recomienda encarecidamente establecer el audio en silencio cuando se reemplace en respuesta a un clic de botón, ya que el usuario ya está interactuando con su notificación emergente.

// 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);