Idioma: HTML | XAML

Inicio rápido: interceptar notificaciones de inserción para aplicaciones en ejecución (XAML)

Puedes diseñar tu aplicación de modo que intercepte una notificación de inserción y responda a ella 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 tiene la oportunidad de interceptar y controlar esa notificación antes de que muestre una notificación del sistema, actualice un icono o un distintivo, o entregue una notificación sin procesar a una tarea en segundo plano. También puede suprimir la visualización o actualización de esos elementos. La implementación de un controlador de eventos de entrega de notificaciones 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  A partir de Windows Phone 8.1, el teléfono también puede impedir que se muestre una notificación del sistema mediante la propiedad ToastNotification.suppressPopup o ScheduledToastNotification.suppressPopup en el contenido XML de la notificación.

Nota  Este procedimiento se aplica solo a aplicaciones en ejecución. Las notificaciones que envía el sistema 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).

Requisitos previos

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

Instrucciones

1. Agregar declaraciones de espacio de nombres

Windows.Networking.PushNotifications incluye las API de notificación de inserción y sin procesar. Se necesita Windows.UI.Notifications para recuperar contenido de iconos, notificaciones del sistema y distintivos de la notificación.



using Windows.UI.Notifications;                        
using Windows.Networking.PushNotifications;

2. Crear un canal de notificaciones de inserción

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



PushNotificationChannel channel = null;

try
{
    channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
}

catch (Exception ex)
{ 
    // ... 
}

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 un distintivo, o mostrar una notificación del sistema. En el caso de una notificación sin procesar, impide que esta se entregue a una tarea en segundo plano, si hay una implementada. De esta forma, cualquier respuesta a la notificación depende del controlador.



string content = null;
private async void OnPushNotification(PushNotificationChannel sender, PushNotificationReceivedEventArgs e) 
{ 
    String notificationContent = String.Empty; 
    
    switch (e.NotificationType) 
    { 
        case PushNotificationType.Badge:
            notificationContent = e.BadgeNotification.Content.GetXml(); 
            break; 
        
        case PushNotificationType.Tile: 
            notificationContent = e.TileNotification.Content.GetXml(); 
            break; 
        
        case PushNotificationType.Toast: 
            notificationContent = e.ToastNotification.Content.GetXml(); 
            break; 
        
        case PushNotificationType.Raw: 
            notificationContent = 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.PushNotificationReceived += OnPushNotification;

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 menos intrusiva.

Temas relacionados

Ejemplos
Ejemplo de notificaciones sin procesar
Ejemplo de notificaciones de inserción y periódicas
Información conceptual
Introducción a los Servicios de notificaciones de inserción de Windows (WNS)
Introducción a las notificaciones sin procesar
Procedimientos recomendados
Instrucciones y lista de comprobación de notificaciones de inserción
Directrices y lista de comprobación de notificaciones sin procesar
Procedimientos
Inicio rápido: crear y registrar una tarea en segundo plano de notificación sin procesar

 

 

Mostrar:
© 2015 Microsoft