Tutorial: Envío de notificaciones a aplicaciones de Plataforma universal de Windows mediante Azure Notification Hubs
En este tutorial se crea un Centro de notificaciones para enviar notificaciones push a una aplicación de Plataforma universal de Windows (UWP). Cree una aplicación vacía de la Tienda Windows que reciba notificaciones push a través de los Servicios de notificaciones de inserción de Windows (WNS). Luego, use el Centro de notificaciones para difundir notificaciones push a todos los dispositivos que ejecuten la aplicación.
Nota
El código completo de este tutorial se encuentra en GitHub.
Siga estos pasos:
- Crear una aplicación en Tienda Windows
- Creación de un centro de notificaciones
- Crear una aplicación de Windows de ejemplo
- Enviar notificaciones de prueba
Prerrequisitos
- Suscripción de Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.
- Microsoft Visual Studio 2017 o posterior. En el ejemplo de este tutorial se usa Visual Studio 2019.
- Herramientas de desarrollo de aplicaciones de la plataforma universal de Windows instaladas
- Una cuenta de la Tienda Windows activa
- Confirme que el valor Obtener notificaciones de aplicaciones y otros remitentes está habilitado.
- Abra la ventana Configuración en el equipo.
- Seleccione el icono Sistema.
- Seleccione Notificaciones y acciones en el menú izquierdo.
- Confirme que el valor Obtener notificaciones de aplicaciones y otros remitentes está habilitado. Si aún no está habilitado, habilítelo.
La realización de este tutorial es un requisito previo para todos los demás tutoriales de Notification Hubs para las aplicaciones de la plataforma universal de Windows.
Crear una aplicación en Tienda Windows
Nota
El Servicio de notificaciones push de Microsoft (MPNS) está en desuso y ya no se admite.
Para enviar notificaciones push a las aplicaciones de la plataforma universal de Windows, asocie su aplicación a la Tienda Windows. A continuación, configure su centro de notificaciones para que se integre con los Servicios de notificaciones de inserción de Windows.
Vaya al Centro de desarrollo de Windows, inicie sesión en su cuenta Microsoft y seleccione Create a new app (Crear aplicación).
Escriba el nombre de la aplicación y seleccione Reserve product name (Reservar nombre de producto). Así se crea un nuevo registro de la Tienda Windows para el registro de la aplicación.
Expanda Administración de productos y, a continuación, seleccione Identidad del producto. Tome nota de los valores de SID de paquete, Paquete/identidad/nombre, Paquete/identidad/publicador y Paquete/Propiedades/Nombre del publicador.
En Administración de productos, seleccione WNS/MPNS y, a continuación, seleccione portal Registro de aplicaciones. Iniciar sesión en su cuenta de Microsoft. La página de registro de la aplicación se abre en una nueva pestaña.
En Información esencial, seleccione Credenciales de cliente: Add a certificate or secret (Agregar un certificado o un secreto).
En la página Certificados y secretos, en Secretos de cliente, seleccione + Nuevo secreto de cliente. Después de crear un secreto de cliente (también denominado secreto de aplicación), anótelo antes de salir de la página.
Advertencia
Solo puede ver los valores de secreto de cliente (secreto de aplicación) inmediatamente después de crearlos. Asegúrese de guardar el secreto antes de salir de la página.
Advertencia
El secreto de aplicación y el SID del paquete son credenciales de seguridad importantes. No los comparta con nadie ni los distribuya con su aplicación.
Creación de un centro de notificaciones
Inicie sesión en Azure Portal.
Seleccione Todos los servicios en el menú de la izquierda.
Escriba Notification Hubs en el cuadro de texto Filtrar servicios. Seleccione el icono de estrella junto al nombre del servicio para agregarlo a la sección FAVORITOS en el menú de la izquierda. Seleccione Notification Hubs.
En la página Notification Hubs, seleccione Crear en la barra de herramientas.
En la pestaña Básico de la página Centro de notificaciones, siga estos pasos:
En Suscripción, seleccione el nombre de la suscripción de Azure que desea usar y, a continuación, seleccione un grupo de recursos existente o cree uno nuevo.
Escriba un nombre único para el nuevo espacio de nombres en Detalles del espacio de nombres.
Un espacio de nombres contiene uno o varios centros de notificaciones, por lo que debe escribir un nombre para el centro en Detalles del centro de notificaciones.
Seleccione un valor en el cuadro de lista desplegable Ubicación. Este valor especifica la ubicación en la que quiere crear el centro.
Revise la opción Availability Zones. Si elige una región que tiene zonas de disponibilidad, la casilla estará activada de forma predeterminada. Availability Zones es una característica de pago, por lo que se agrega un honorario adicional al nivel.
Elija una opción de Recuperación ante desastres: Ninguna, Región de recuperación emparejada o Región de recuperación flexible. Si elige Región de recuperación emparejada, se mostrará la región de conmutación por error. Si selecciona Región de recuperación flexible, use la lista desplegable para elegir una lista de regiones de recuperación.
Seleccione Crear.
Cuando la implementación se complete, seleccione Ir al grupo de recursos.
Configuración de los valores de WNS del centro
En la categoría CONFIGURACIÓN DE NOTIFICACIONES, seleccione Windows (WNS) .
Especifique los valores de SID del paquete (como "ms-app://
<Your Package SID>
") y Clave de seguridad (el Secreto de aplicación) que anotó en la sección anterior.Haga clic en Guardar en la barra de herramientas.
El centro de notificaciones ya está configurado para funcionar con WNS. Tiene la cadena de conexión para registrar la aplicación y enviar notificaciones.
Crear una aplicación de Windows de ejemplo
En Visual Studio, en el menú Archivo, seleccione Nuevo y, después, Proyecto.
En el cuadro de diálogo Crear un nuevo proyecto, realice estos pasos:
En el cuadro de búsqueda de la parte superior, escriba Windows Universal.
En los resultados de la búsqueda, seleccione Aplicación en blanco (Windows universal) y, después, seleccione Siguiente.
En el cuadro de diálogo Configurar el nuevo proyecto, escriba un Nombre de proyecto y una Ubicación para los archivos del proyecto.
Seleccione Crear.
Acepte los valores predeterminados de las versiones de plataforma mínima y de destino y seleccione Aceptar.
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto de la aplicación para la Tienda Windows, seleccione Publicar y, a continuación, seleccione Asociar aplicación con la Tienda. Aparece el asistente Asocie la aplicación con la Tienda Windows .
En el asistente, inicie sesión con su cuenta de Microsoft.
Seleccione la aplicación que registró en el paso 2, Siguiente y Asociar. De esta manera, se agrega la información de registro necesaria de la Tienda Windows al manifiesto de aplicación.
En Visual Studio, haga clic con el botón derecho en la solución y seleccione Administrar paquetes NuGet. Se abre la ventana Administrar paquetes NuGet.
En el cuadro de búsqueda, escriba WindowsAzure.Messaging.Managed, seleccione Instalar y acepte las condiciones de uso.
Esta acción descarga, instala y agrega una referencia a la biblioteca de Azure Notification Hubs para Windows mediante el paquete NuGet Microsoft.Azure.NotificationHubs.
Abra el archivo de proyecto
App.xaml.cs
y agregue las siguientes instrucciones:using Windows.Networking.PushNotifications; using Microsoft.WindowsAzure.Messaging; using Windows.UI.Popups;
En el archivo
App.xaml.cs
del proyecto, busque la claseApp
y agregue la siguiente definición de métodoInitNotificationsAsync
. Reemplace<your hub name>
por el nombre del centro de notificaciones que creó en Azure Portal y reemplace<Your DefaultListenSharedAccessSignature connection string>
por la cadena de conexiónDefaultListenSharedAccessSignature
de la página Directivas de acceso del centro de notificaciones:private async void InitNotificationsAsync() { var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync(); var hub = new NotificationHub("<your hub name>", "<Your DefaultListenSharedAccessSignature connection string>"); var result = await hub.RegisterNativeAsync(channel.Uri); // Displays the registration ID so you know it was successful if (result.RegistrationId != null) { var dialog = new MessageDialog("Registration successful: " + result.RegistrationId); dialog.Commands.Add(new UICommand("OK")); await dialog.ShowAsync(); } }
Este código recupera el URI del canal de la aplicación desde WNS y, luego, lo registra en el Centro de notificaciones.
Nota
Reemplace el marcador de posición
hub name
por el nombre del centro de notificaciones que aparece en Azure Portal. Reemplace también el marcador de posición de cadena de conexión por la cadena de conexiónDefaultListenSharedAccessSignature
que obtuvo de la página Directivas de acceso del centro de notificaciones en una sección anterior.En la parte superior del controlador de eventos
OnLaunched
enApp.xaml.cs
, agregue la siguiente llamada al nuevo métodoInitNotificationsAsync
:InitNotificationsAsync();
Esta acción garantiza que el URI del canal se registra en su centro de notificaciones cada vez que se inicia la aplicación.
Haga clic con el botón derecho en
Package.appxmanifest
y seleccione Ver código (F7). Busque<Identity .../>
y sustituya el valor de Nombre por el de Paquete/identidad/nombre y reemplace el valor de Publicador por el valor de Paquete/identidad/publicador de la aplicación que creó antes.Para ejecutar la aplicación, presione la tecla F5 del teclado. Se mostrará un cuadro de diálogo que contiene la clave de registro. Para cerrar el cuadro de diálogo, haga clic en Aceptar.
La carpeta ahora ya está lista para recibir notificaciones.
Enviar notificaciones de prueba
Puede probar rápidamente la recepción de notificaciones en la aplicación si envía alguna desde Azure Portal.
En Azure Portal, cambie a la pestaña Información general y seleccione Envío de prueba en la barra de herramientas.
En la ventana Envío de prueba, lleve a cabo las siguientes acciones:
En Plataformas, seleccione Windows.
En Tipo de notificación, seleccione Notificación del sistema.
Seleccione Enviar.
Verá el resultado de la operación de envío en la lista Resultado de la parte inferior de la ventana. También verá un mensaje de alerta.
Verá el mensaje de notificación: Mensaje de prueba en el escritorio.
Pasos siguientes
Ha enviado notificaciones de difusión a todos los dispositivos con Windows mediante el portal o una aplicación de consola. Para aprender a enviar notificaciones push a dispositivos específicos, pase al siguiente tutorial: