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.
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...
- Construcción de contenido de notificación del sistema
- Envío de una notificación del sistema y control de la activación en segundo plano
Información general
Para implementar una notificación del sistema que usa la actualización pendiente como su comportamiento posterior a la activación...
En los botones de activación en segundo plano del sistema, especifique un AfterActivationBehavior de PendingUpdate.
Asignar una etiqueta (y, opcionalmente , Agrupar) al enviar la notificación del sistema
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.
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);