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.

  1. Vaya al Centro de desarrollo de Windows, inicie sesión en su cuenta Microsoft y seleccione Create a new app (Crear aplicación).

    New app button

  2. 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.

    Store app name

  3. 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.

    Partner center apps

  4. 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.

    WNS page

  5. En Información esencial, seleccione Credenciales de cliente: Add a certificate or secret (Agregar un certificado o un secreto).

    Notification Hub settings on Azure portal

  6. 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.

    Client secret on portal

    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

  1. Inicie sesión en Azure Portal.

  2. Seleccione Todos los servicios en el menú de la izquierda. A screenshot showing select All Services for an existing namespace.

  3. 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.

    A screenshot showing how to filter for notification hubs.

  4. En la página Notification Hubs, seleccione Crear en la barra de herramientas.

    A screenshot showing how to create a new notification hub.

  5. En la pestaña Básico de la página Centro de notificaciones, siga estos pasos:

    1. 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.

    2. Escriba un nombre único para el nuevo espacio de nombres en Detalles del espacio de nombres.

    3. 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.

    4. Seleccione un valor en el cuadro de lista desplegable Ubicación. Este valor especifica la ubicación en la que quiere crear el centro.

      Screenshot showing notification hub details.

    5. 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.

    6. 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.

      Screenshot showing availability zone details.

    7. Seleccione Crear.

  6. Cuando la implementación se complete, seleccione Ir al grupo de recursos.

Configuración de los valores de WNS del centro

  1. En la categoría CONFIGURACIÓN DE NOTIFICACIONES, seleccione Windows (WNS) .

  2. 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.

  3. Haga clic en Guardar en la barra de herramientas.

    The Package SID and Security Key boxes

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

  1. En Visual Studio, en el menú Archivo, seleccione Nuevo y, después, Proyecto.

  2. En el cuadro de diálogo Crear un nuevo proyecto, realice estos pasos:

    1. En el cuadro de búsqueda de la parte superior, escriba Windows Universal.

    2. En los resultados de la búsqueda, seleccione Aplicación en blanco (Windows universal) y, después, seleccione Siguiente.

      New Project dialog

    3. En el cuadro de diálogo Configurar el nuevo proyecto, escriba un Nombre de proyecto y una Ubicación para los archivos del proyecto.

    4. Seleccione Crear.

  3. Acepte los valores predeterminados de las versiones de plataforma mínima y de destino y seleccione Aceptar.

  4. 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 .

  5. En el asistente, inicie sesión con su cuenta de Microsoft.

  6. 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.

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

  8. En el cuadro de búsqueda, escriba WindowsAzure.Messaging.Managed, seleccione Instalar y acepte las condiciones de uso.

    The Manage NuGet Packages window

    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.

  9. 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;
    
  10. En el archivo App.xaml.cs del proyecto, busque la clase App y agregue la siguiente definición de método InitNotificationsAsync. 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ón DefaultListenSharedAccessSignature 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ón DefaultListenSharedAccessSignature que obtuvo de la página Directivas de acceso del centro de notificaciones en una sección anterior.

  11. En la parte superior del controlador de eventos OnLaunched en App.xaml.cs, agregue la siguiente llamada al nuevo método InitNotificationsAsync:

    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.

  12. 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.

  13. 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.

    Registration successful

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.

  1. En Azure Portal, cambie a la pestaña Información general y seleccione Envío de prueba en la barra de herramientas.

    Test Send button

  2. En la ventana Envío de prueba, lleve a cabo las siguientes acciones:

    1. En Plataformas, seleccione Windows.

    2. En Tipo de notificación, seleccione Notificación del sistema.

    3. Seleccione Enviar.

      The Test Send pane

  3. 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.

    Result of Send operation

  4. Verá el mensaje de notificación: Mensaje de prueba en el escritorio.

    Notification message

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: