Aplicaciones de Windows
Contraer la tabla de contenido
Expandir la tabla de contenido

Inicio rápido: interceptar notificaciones de inserción para aplicaciones en ejecución (aplicaciones de la Tienda Windows con JavaScript y HTML)

Este inicio rápido te guía por los pasos necesarios para que tu aplicación en ejecución intercepte una notificación de inserción y responda a esa notificación de manera diferente a la predeterminada. Puedes usar este procedimiento para todos los tipos de notificaciones de inserción, pero es sobre todo útil para las notificaciones del sistema y sin procesar.

Cuando el servicio de nube de tu aplicación envía una notificación a Windows, tu aplicación tendrá la oportunidad de interceptar y controlar esa notificación antes de que muestre una notificación del sistema, actualice un icono o una notificación, o entregue una notificación sin procesar a una tarea en segundo plano. También puede suprimir las acciones de mostrar o actualizar estos elementos. Implementar un controlador de eventos de entrega de notificación es opcional; resulta muy útil en aquellos escenarios en que la aplicación desea controlar y suprimir las notificaciones del sistema entrantes en lugar de mostrarlas al usuario.

Nota  Este procedimiento se aplica solo a aplicaciones en ejecución. Las notificaciones que se envían cuando la aplicación no se está ejecutando y el controlador no está implementado se entregan de la forma normal: se actualizan los iconos, se muestran las notificaciones del sistema y se entregan las notificaciones sin procesar a las tareas en segundo plano (si están implementadas).

Para ver versiones en C#, C++ o Microsoft Visual Basic de los ejemplos de JavaScript proporcionados en este inicio rápido, haz clic en el vínculo "VB/C#/C++ y XAML" en la esquina superior derecha de esta página.

Requisitos previos

Para comprender este tema o para usar el código que contiene, necesitarás:

Instrucciones

1. Opcional: declarar una variable de espacio de nombres

Este paso te proporciona un nombre corto para que lo uses en lugar del nombre completo del espacio de nombres. Es el equivalente de una instrucción "using" en C# o de la instrucción "Imports" en Visual Basic. Esto permite simplificar el código.

Nota  El resto del código de este inicio rápido supone que se ha declarado esta variable.



var pushNotifications = Windows.Networking.PushNotifications;

2. Crear un canal de notificaciones de inserción

Se necesita un canal de notificaciones válido para recibir notificaciones insertadas desde un servidor de nube. La escucha de eventos observará este canal en espera de la llegada de la notificación. Para obtener más información sobre cómo crear un canal, consulta Cómo solicitar, crear y guardar un canal de notificaciones.

Si se realiza correctamente, este ejemplo crea un canal al que se puede acceder a través de newChannel.uri.



var channel;
var channelOperation = pushNotifications.PushNotificationChannelManager.createPushNotificationChannelForApplicationAsync();

return channelOperation.then(function (newChannel) {
    channel = newChannel;
    },
    function (error) {
        // ...
    }
);

3. Crear una función para controlar el evento de notificación de inserción

El siguiente ejemplo muestra cómo controlar todos los tipos de notificación.

La última línea del código de este ejemplo establece la propiedad cancel del evento en true. Esto impide que la notificación realice cambios en la interfaz de usuario, como actualizar un icono o una notificación, o mostrar una notificación del sistema. En el caso de una notificación sin procesar, impide que se entregue a una tarea en segundo plano, si hay una implementada. De esta forma, cualquier respuesta a la notificación depende del controlador.



var content;
function onPushNotification(e) {
    var notificationPayload; 

    switch (e.notificationType) { 
        case pushNotifications.PushNotificationType.toast: 
            notificationPayload = e.toastNotification.content.getXml(); 
            break; 

        case pushNotifications.PushNotificationType.tile: 
            notificationPayload = e.tileNotification.content.getXml(); 
            break; 

        case pushNotifications.PushNotificationType.badge: 
            notificationPayload = e.badgeNotification.content.getXml(); 
            break; 

        case pushNotifications.PushNotificationType.raw: 
            notificationPayload = e.rawNotification.content; 
            break; 
    } 

    e.cancel = true;
}

4. Agregar una escucha de eventos para las notificaciones de inserción recibidas

Usa el canal creado en el paso 1 para asignar el controlador de eventos creado en el paso 2 a controlar el evento PushNotificationReceived.



channel.addEventListener("pushnotificationreceived", onPushNotification, false);

Resumen

Si el escenario lo requiere, interceptar y controlar una notificación de inserción mientras se ejecuta la aplicación puede proporcionar a tu aplicación más control sobre el efecto de esas notificaciones. Por ejemplo, es posible que no quieras que se muestre una notificación del sistema encima de un juego en curso; el controlador de eventos podría integrar el contenido de esa notificación en la interfaz de usuario del juego de forma más discreta.

Temas relacionados

Ejemplo de notificaciones sin procesar
Ejemplo de notificaciones de inserción y periódicas
Introducción a las notificaciones de inserción
Introducción a las notificaciones sin procesar
Instrucciones y lista de comprobación de notificaciones de inserción
Directrices y lista de comprobación de notificaciones sin procesar
Inicio rápido: crear y registrar una tarea en segundo plano de notificación sin procesar

 

 

Mostrar:
© 2018 Microsoft