Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las notificaciones programadas app le permiten programar una notificación para que aparezca más adelante, independientemente de si app se está ejecutando en ese momento. Esto es útil para escenarios como mostrar recordatorios u otras tareas de seguimiento para el usuario, donde la hora y el contenido de la notificación se conocen antes de tiempo.
Tenga en cuenta que las notificaciones programadas app tienen un período de entrega de 5 minutos. Si el equipo está desactivado durante el tiempo de entrega programado y permanece apagado durante más de 5 minutos, la notificación se "quitará" como ya no es relevante para el usuario. Si necesita la entrega garantizada de notificaciones independientemente de cuánto tiempo estaba desactivado el equipo, se recomienda usar una tarea en segundo plano con un desencadenador de hora, como se muestra en este ejemplo de código.
Note
El término "toast notificación" se va a reemplazar por "app notification". Estos términos hacen referencia a la misma característica de Windows, pero con el tiempo se eliminará el uso de "toast notificación" en la documentación.
Important
Las aplicaciones de escritorio (empaquetadas y sin empaquetar) tienen pasos ligeramente diferentes para enviar notificaciones y controlar la activación. Siga las instrucciones siguientes, pero reemplace ToastNotificationManager por la clase DesktopNotificationManagerCompat de la documentación de aplicaciones de escritorio.
API importantes: clase ScheduledToastNotification
Prerequisites
Para comprender completamente este tema, lo siguiente será útil...
- Conocimientos prácticos sobre los términos y conceptos de app notificación. Para obtener más información, consulte el Toast y el resumen del centro de actividades.
- Familiaridad con el contenido de notificaciones de Windows 10 app . Para obtener más información, consulte App la documentación del contenido de notificaciones .
- Un proyecto para UWP app de Windows 10
Paso 1: Instalación del paquete NuGet
Instale el paquete NuGet Microsoft.Toolkit.Uwp.Notifications. Nuestro ejemplo de código usará este paquete. Al final del artículo, proporcionaremos los fragmentos de código que no están formateados y no usan ningún paquete NuGet. Este paquete permite crear app notificaciones sin usar XML.
Paso 2: Agregar declaraciones de espacio de nombres
using Microsoft.Toolkit.Uwp.Notifications; // Notifications library
Paso 3: Programar la notificación
Usaremos una notificación simple basada en texto que recuerda a un alumno sobre la tarea que tienen a vencimiento hoy. Construye la notificación y prográmala.
// Construct the content and schedule the toast!
new ToastContentBuilder()
.AddArgument("action", "viewItemsDueToday")
.AddText("ASTR 170B1")
.AddText("You have 3 items due today!");
.Schedule(DateTime.Now.AddSeconds(5));
Proporcione una clave principal para la notificación.
Si desea cancelar, quitar o reemplazar la notificación programada mediante programación, debe usar la propiedad Tag (y, opcionalmente, la propiedad Group) para proporcionar una clave principal para la notificación. A continuación, puede usar esta clave principal en el futuro para cancelar, quitar o reemplazar la notificación.
Para ver más detalles sobre cómo reemplazar o quitar notificaciones ya entregadasapp, consulta Inicio rápido: Administración toast de notificaciones en el centro de actividades (XAML).
La etiqueta y el grupo combinados actúan como una clave principal compuesta. El grupo es el identificador más genérico, donde puede asignar grupos como "wallPosts", "messages", "friendRequests", etc. Y, a continuación, Tag debe identificar de forma única la notificación desde dentro del grupo. Mediante el uso de un grupo genérico, puede quitar todas las notificaciones de ese grupo mediante el RemoveGroup API.
// Construct the content and schedule the toast!
new ToastContentBuilder()
.AddArgument("action", "viewItemsDueToday")
.AddText("ASTR 170B1")
.AddText("You have 3 items due today!");
.Schedule(DateTime.Now.AddSeconds(5), toast =>
{
toast.Tag = "18365";
toast.Group = "ASTR 170B1";
});
Cancelación de notificaciones programadas
Para cancelar una notificación programada, primero debe recuperar la lista de todas las notificaciones programadas.
A continuación, busque la notificación programada app que coincida con la etiqueta (y, opcionalmente, el grupo) que especificó anteriormente y llame a RemoveFromSchedule().
// Create the toast notifier
ToastNotifierCompat notifier = ToastNotificationManagerCompat.CreateToastNotifier();
// Get the list of scheduled toasts that haven't appeared yet
IReadOnlyList<ScheduledToastNotification> scheduledToasts = notifier.GetScheduledToastNotifications();
// Find our scheduled toast we want to cancel
var toRemove = scheduledToasts.FirstOrDefault(i => i.Tag == "18365" && i.Group == "ASTR 170B1");
if (toRemove != null)
{
// And remove it from the schedule
notifier.RemoveFromSchedule(toRemove);
}
Important
Un win32 app sin empaquetar (carece de identidad de paquete en tiempo de ejecución) debe usar la clase ToastNotificationManagerCompat como se ha visto anteriormente. Si usa ToastNotificationManager, recibirá una excepción de 'elemento no encontrado'. Todos los tipos de aplicaciones pueden usar la clase Compat, y funcionará correctamente.
Activation handling
Consulte los documentos de envío de notificaciones locales app para obtener más información sobre el control de la activación. La activación de una notificación programada app se controla igual que la activación de una notificación local app .
Agregar acciones, entradas y mucho más
Consulte los documentos de envío de una notificación local app para obtener más información sobre temas avanzados, como acciones y entradas. Las acciones y las entradas funcionan igual en las notificaciones locales app que en las notificaciones programadas app .