[Windows Phone 8.1] Probando notificaciones en el emulador

Introducción

Uno de los primeros cambios visibles en el nuevo SDK de Windows Phone 8.1 es el emulador.
Contamos con una gran variedad de emuladores con diferentes
resoluciones, tamaños de pantalla y memoria lo que nos permite probar
una gran cantidad de la funcionalidad de nuestras aplicaciones. Entre la
gran cantidad de situaciones que podemos probar, tenemos la posibilidad
de probar notificaciones sin la necesidad de crear un servicio en la nube que si es necesario al publicar la aplicación.

Manos a la obra!

Vamos a crear un proyecto básico pero suficiente para poder probar la
herramienta de notificaciones del emulador. Creamos un nuevo proyecto:

Partimos de la plantilla Blank App para centrar nuestra atención en la gestión de notificaciones. Añadimos las carpetas Views, ViewModels y Services además de las clases base necesarias para implementar el patrón MVVM de la misma forma que vimos en este artículo.

Para que la aplicación sea capaz de gestionar notificaciones Toast
debemos activar la opción en el archivo de manifiesto del paquete.

Pasamos a definir la interfaz de nuestra aplicación. El objetivo sera
probar la herramienta de notificaciones del emulador por lo que nuestra
interfaz sera lo más simple posible para conseguir el objetivo. En este
caso, un simple botón que al ser pulsado recuperare un canal de
notificación de inserción para la aplicación:

<Grid>
     <Button Content="Enviar notificación"
             Command="{Binding NotificationCommand}"
             HorizontalAlignment="Center"/>
</Grid>

El resultado es:

En la viewmodel correspondiente a la vista se ejecutará un comando:

private ICommand _notificationCommand;
 
public ICommand NotificationCommand
{
     get { return _notificationCommand = _notificationCommand ?? new DelegateCommandAsync(NotificationCommandDelegate); }
}
 
public async Task NotificationCommandDelegate()
{
     var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
 
     channel.PushNotificationReceived += (s, e) => {
          if (e.ToastNotification != null)
               Debug.WriteLine("{0}:{1}", e.NotificationType, e.ToastNotification.Content.InnerText);
     };
}

Utilizamos la clase PushNotificationChannelManager
encargada de crear objetos que se utilizan para recuperar canales de
notificaciones de inserción de Servicios de notificaciones de inserción
de Windows (WNS). Esta clase cuenta con un método llamado CreatePushNotificationChannelForApplicationAsync()
que sera el utilizado para recuperar un canal de notificación de
inserción para la aplicación. A continuación, para asegurarnos que todo
esta funcionando como debe, nos suscribimos al evento PushNotificationReceived que se desencadena cuando llega una notificación de inserción a este canal.

Simulando notificaciones

Y ya. Todo listo para poder probar el simulador de notificaciones!.
Pulsamos el botón y abrimos las herramientas extras seleccionando la
pestaña notificaciones:

Habilitamos la simulación de notificaciones y pulsamos el botón refrescar:

Se refresca el contenido de la herramienta mostrando el AppId de la aplicación asi como la Uri, tipo de notificación y plantilla
utilizada. En este punto podemos ver el contenido y probar con
distintos tipos de notificaciones hasta poder elegir con certeza cual
encaja con nuestros objetivos. Pulsamos el botón enviar:

Y automáticamente recibimos el mensaje de la notificación quedando la misma tambien registrada en el centro de actividades:

Podéis descargar el ejemplo realizado a continuación:

Más información

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *