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 del sistema. Por ejemplo, como se muestra a continuación, puede crear una serie de notificaciones del sistema en las que las notificaciones del sistema posteriores dependen de las respuestas de las notificaciones del sistema anteriores.

Notificación del sistema con actualización pendiente

Importante

Requiere Desktop Fall Creators Update y 2.0.0 de la biblioteca de notificaciones: debe ejecutar la compilación de escritorio 16299 o posterior para ver el trabajo de actualización pendiente. Debes usar la versión 2.0.0 o posterior de la biblioteca NuGet Notificaciones del Kit de herramientas de la comunidad para UWP para asignar PendingUpdate en tus botones. PendingUpdate solo se admite en escritorio y se omitirá en otros dispositivos.

Requisitos previos

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

Información general

Para implementar una notificación del sistema que usa 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 , Agrupar) al enviar la notificación del sistema

  3. Cuando el usuario hace clic en el botón, se activará la tarea en segundo plano y la notificación del sistema 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 la misma etiqueta y grupo.

Asignar PendingUpdate

En los botones de activación en segundo plano, establezca AfterActivationBehavior en PendingUpdate. Tenga en cuenta que esto solo funciona para los botones que tienen un ActivationType de Fondo.

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) en la notificación.

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

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

Reemplazar la notificación del sistema por nuevo contenido

En respuesta al usuario que hace clic en el botón, la tarea en segundo plano se desencadena y necesita reemplazar la notificación del sistema por contenido nuevo. Reemplace la notificación del sistema simplemente enviando una nueva notificación del sistema con la misma etiqueta y grupo.

Se recomienda encarecidamente establecer el audio en silencio en los reemplazos en respuesta a un clic de botón, ya que el usuario ya está interactuando con la notificación del 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);