VENTAS: 1-800-867-1389

Tutorial del centro de notificaciones de Service Bus (aplicaciones de iOS)

noteNota
Los centros de notificaciones están disponibles en Service Bus de Windows Azure como característica preliminar en enero de 2013. Se espera que la transición hacia la disponibilidad general se realice a mediados de 2013.

noteNota
Como resultado de las mejoras realizadas en los centros de notificaciones, el SDK que descargó antes de abril de 2013 no funcionará con los nuevos centros de notificaciones. A la inversa, el SDK actual no funcionará con los centros de notificaciones creados antes de abril de 2013. Comience a utilizar los nuevos centros de notificaciones con el nuevo SDK para aprovechar todas las características nuevas, como el control de simultaneidad optimista. El soporte técnico para los centros de notificaciones creados antes de abril de 2013 finalizará cuando los centros de notificaciones estén disponibles de forma general.

Los centros de notificaciones de Service Bus son entidades de Service Bus que permiten a los usuarios enviar notificaciones de inserción a través de plataformas de aplicación de terceros, entre las que se incluye:

  • Servicios de notificaciones de inserción de Windows (WNS) para Windows 8.

  • Servicio de notificaciones de inserción de Apple (APNs).

  • Servicio de Google Cloud Messaging (GCM).

Próximamente se agregará compatibilidad para el Servicio de notificaciones de inserción de Microsoft (MPNS) para Windows Phone.

En este tutorial se describe cómo configurar una aplicación iOS y una aplicación .NET sencilla que difunden notificaciones a través del servicio de notificaciones de inserción de Apple.

Los pasos que se deben seguir son los siguientes:

  1. Generar la solicitud de firma de certificado para activar APNs para la aplicación.

  2. Registrar la aplicación de iOS en el portal de aprovisionamiento de iOS para habilitar las notificaciones de inserción y obtener las credenciales y el perfil de aprovisionamiento.

  3. Crear un perfil de aprovisionamiento para la aplicación.

  4. Crear y configurar un centro de notificaciones.

  5. Configurar la aplicación de iOS para recibir notificaciones de inserción de un centro de notificaciones.

  6. Crear un programa back-end para difundir una notificación de inserción.

También se incluyen el tema detallado Procedimiento: centros de notificaciones de Service Bus (aplicaciones de iOS) y el tema de introducción Centros de notificaciones de Windows Azure Service Bus.

Requisitos previos

Para realizar las tareas que se explican en este tutorial, se requiere lo siguiente:

  • Una cuenta de desarrollador de Apple.

  • SDK de Service Bus .NET Preview. El SDK es un paquete NuGet que contiene características preliminares de Service Bus. Se puede descargar desde aquí. Es paquete incluye características preliminares de Service Bus y una nueva biblioteca de Service Bus llamada Microsoft.ServiceBus.Preview.dll. Para usar los centros de notificaciones, use esta biblioteca en lugar de la biblioteca de la versión de producción (Microsoft.ServiceBus.dll).

  • Marco del SDK de Service Bus iOS. Puede descargarlo desde aquí.

Generar la solicitud de firma de certificado

  1. En primer lugar, genere el archivo de solicitud de firma de certificado (CSR), que Apple usa para generar un certificado firmado.

  2. En la carpeta Utilities, ejecute la herramienta Keychain Access.

  3. Haga clic en Keychain Access, expanda Certificate Assistant y haga clic en Request a Certificate from a Certificate Authority.....

    solicitud de firma de certificado
  4. Haga clic en User Email Address, escriba los valores de Common Name y CA Email Address, seleccione Saved to disk y haga clic en Continue.

    información sobre el certificado
  5. Escriba el nombre del archivo de solicitud de firma de certificado (CSR) en Save As, seleccione la ubicación en Where y haga clic en Save. Esta operación guarda el archivo CSR en la ubicación seleccionada (el escritorio es la ubicación predeterminada). No olvide la ubicación que elija para el archivo.

    solicitud de firma de certificado
  6. A continuación, registre la aplicación en Apple, habilite las notificaciones de inserción y cargue el archivo CSR exportado para crear un certificado de inserción.

Registrar la aplicación y habilitar las notificaciones de inserción

  1. Para poder enviar notificaciones de inserción a una aplicación de iOS, registre la aplicación en Apple y regístrela para recibir notificaciones de inserción.

  2. Si todavía no registró la aplicación, vaya al portal de aprovisionamiento de iOS en el centro para desarrolladores de Apple, inicie sesión con su identificador de Apple, haga clic en App IDs y luego en New App ID.

    Portal de aprovisionamiento de iOS
  3. En Description, escriba un nombre para la aplicación, especifique un valor ServiceBus.Tutorial en Bundle Identifier y haga clic en Submit.

    noteNota
    El identificador de paquete debe ser el mismo que el proporcionado en el proyecto Xcode de la aplicación.

  4. Busque el identificador de aplicación que creó y haga clic en Configure.

  5. Active la casilla Enable for Apple Push Notification service y haga clic en Configure para el certificado SSL de inserción de desarrollo. Aparece el Apple Push Notification service SSL Certificate Assistant.

    noteNota
    El mismo proceso se aplica para el certificado de producción.

  6. Haga clic en Browse, vaya a la ubicación en la que guardó el archivo CSR creado en la primera tarea y haga clic en Generate.

  7. Cuando el portal haya creado el certificado, haga clic en Continue y en la pantalla siguiente en Download. El certificado de firma se descarga y se guarda en el equipo, en la carpeta Descargas, como aps_development.cer.

  8. Haga doble clic en el certificado de inserción descargado aps_development.cer. El nuevo certificado se descarga y se instala en la cadena de claves.

  9. En Keychain Access, haga clic con el botón secundario del mouse en el certificado nuevo, haga clic en Export, asigne el nombre ServiceBusTutorial al archivo, seleccione el formato .p12 y haga clic en Save.

    ImportantImportante
    Si el portal no acepta la extensión .p12, cámbiela a .pfx.

Crear un perfil de aprovisionamiento para la aplicación

  1. En el portal de aprovisionamiento de iOS, seleccione Provisioning y haga clic en New Profile.

  2. Especifique un nombre en Profile Name, haga clic en Certificates and Devices para seleccionar los certificados y dispositivos que se usarán para las pruebas, seleccione el identificador de Apple en App ID y haga clic en Submit. Se crea un nuevo perfil de aprovisionamiento.

  3. En la lista de perfiles de aprovisionamiento, haga clic en Download para este nuevo perfil. El perfil se descarga en el equipo local.

  4. En Xcode, abra el organizador y seleccione la vista Devices. Seleccione Provisioning Profiles en la sección Library del panel izquierdo y haga clic en el botón Import de la parte inferior del panel central.

  5. Busque el perfil de aprovisionamiento descargado y haga clic en Open.

  6. En Targets, haga clic en el principal destino de la aplicación (normalmente el nombre de la misma), expanda la opción Code Signing Identity y en Debug seleccione el perfil nuevo. Este procedimiento asegura que el proyecto Xcode usa el perfil nuevo para la firma del código.

Crear un centro de notificaciones de Service Bus

Puede usar el Portal de administración de Windows Azure para crear un centro de notificaciones y configurarlo para que envíe notificaciones de inserción a una aplicación de la Tienda Windows.

  1. Inicie sesión en el Portal de administración de Windows Azure (http://manage.windowsazure.com/).

  2. En la esquina inferior izquierda, haga clic en Seguimiento.

  3. Haga clic en App Services, Service Bus, Centro de notificaciones y, a continuación, en Creación rápida.

    Crear un concentrador de notificaciones de Service Bus
  4. Seleccione un nombre para el centro de notificaciones, una región y el espacio de nombres en el que crear este centro de notificaciones (si no hay espacios de nombres disponibles, se proporciona uno nuevo con el nombre especificado).

  5. Haga clic en la marca de verificación.

  6. En la pestaña Service Bus del panel de navegación izquierdo, haga clic en el espacio de nombres creado. El centro de notificaciones debería aparecer en la lista.

    Concentrador de notificaciones de Service Bus
  7. Haga clic en el centro de notificaciones y luego en la pestaña Configure en la parte superior.

    Concentrador de notificaciones de Service Bus
  8. Cargue el certificado APNs (ServiceBusTutorial.p12), junto con su contraseña. Recuerde seleccionar el entorno correspondiente para el certificado, por ejemplo, Producción o Desarrollo.

Crear una aplicación de iOS y registrarla para recibir notificaciones de inserción con Service Bus

Descargar el marco de Service Bus y hacer referencia a él

  1. Descargue el SDK de Service Bus iOS Preview.

  2. Arrastre la carpeta WindowsAzureServiceBus.framework desde Finder al proyecto (seleccione Copy items into destination group’s folder (if needed)).

Acceder a un centro de notificaciones

  1. Agregue la directiva de importación siguiente en la clase AppDelegate de la aplicación.

    #import <WindowsAzureMessaging/WindowsAzureMessaging.h>
    
  2. Escriba el código siguiente en el método didFinishLaunchingWithOptions:

    [[UIApplication sharedApplication] registerForRemoteNotificationTypes: UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound];
    
  3. En el Portal de administración de Windows Azure, haga clic en Service Bus en el panel de navegación izquierdo y haga clic en el espacio de nombres a la derecha. Tome nota del nombre del espacio de nombres.

  4. Haga clic en el centro de notificaciones y, a continuación, en Información de conexión en la barra de herramientas de la parte inferior.

    Concentrador de notificaciones de Service Bus
  5. Copie la cadena de conexión para la clave denominada DefaultListenSharedAccessSignature.

  6. En AppDelegate.m, agregue el siguiente método que crea un registro de plantilla para este dispositivo. Asegúrese de reemplazar la cadena de conexión por el valor que acaba de copiar del portal:

    (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *) deviceToken {    
        SBNotificationHub* hub = [[SBNotificationHub alloc] initWithConnectionString:
                                  @"<connection string>" notificationHubPath:@"mynh"];
        
        [hub registerNativeWithDeviceToken:deviceToken tags:nil completion:^(NSError* error) {
            if (error != nil) {
                NSLog(@"Error registering for notifications: %@", error);
            }
        }];
    }
    
  7. En AppDelegate.m, agregue el método siguiente para mostrar una UIAlert si se recibe una notificación mientras la aplicación está en ejecución:

    - (void)application:(UIApplication *)application didReceiveRemoteNotification:
    (NSDictionary *)userInfo {
        NSLog(@"%@", userInfo);
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Notification" message:
        [userInfo objectForKey:@"inAppMessage"] delegate:nil cancelButtonTitle:
        @"OK" otherButtonTitles:nil, nil];
        [alert show];
    }
    

En la sección Procedimiento: centros de notificaciones de Service Bus (aplicaciones de iOS) encontrará más información acerca del código anterior, así como una explicación de cómo acceder a características más avanzadas de los centros de notificaciones desde las aplicaciones de iOS.

Crear una aplicación back-end para enviar notificaciones de inserción

  1. En Visual Studio, cree un nuevo proyecto y seleccione Visual C#->Windows->Console Application.

  2. En el Explorador de soluciones, haga clic con el botón secundario en Referencias y seleccione Administrar paquetes NuGet. Busque el paquete de características preliminares de Service Bus e instálelo.

  3. En Program.cs, agregue el código siguiente en la parte superior:

    using Microsoft.ServiceBus;
    using Microsoft.ServiceBus.Messaging;
    using Microsoft.ServiceBus.Notifications;
    
  4. En el panel del centro de notificaciones del Portal de administración de Windows Azure, haga clic en Información de conexión en la barra de herramientas de la parte inferior.

    Concentrador de notificaciones de Service Bus
  5. Copie la cadena de conexión para la clave denominada DefaultFullSharedAccessSignature.

  6. En Program.cs, pegue el siguiente código en el método Main(), reemplazando el marcador de posición por la cadena de conexión que acaba de copiar del portal:

    var hubClient = NotificationHubClient.CreateClientFromConnectionString(“<connection string>, "myHub");
    var iosPayload = AppleNotificationJsonBuilder.Create("Hello!");
    iosPayload.CustomFields.Add("inAppMessage", "Hello!");
    hubClient.SendAppleNativeNotification(iosPayload.ToJsonString());
    

Ejecutar la aplicación y enviar una notificación

  1. En Xcode, en la esquina superior izquierda, haga clic en iOS Device.

ImportantImportante
Las notificaciones de inserción no funcionan en el simulador.

  1. Ejecute la aplicación en el dispositivo.

  2. En Visual Studio, ejecute el programa de consola.

  3. Una notificación debería aparecer en el dispositivo.

Enviar una notificación con Node.js

  1. Instale el módulo de nodo de Azure:

    npm install azure
    
  2. En un script de nodo (o consola interactiva), escriba lo siguiente:

    var azure = require('azure');
    var hub = azure.createNotificationHubService('<your hub name>', '<your connection string with full access>');
    hub.apns.send(null, '{ alert: "This is my toast message for iOS!"}');
    

Enviar una notificación con Mobile Services

Mobile Services le permite crear rápidamente un back-end para su aplicación. Puede usar los centros de notificaciones de Mobile Services para difundir notificaciones en millones de dispositivos o crear fácilmente grupos de interés mediante etiquetas.

En este tutorial se usa un trabajo programado, pero puede enviar notificaciones desde cualquier script de servidor de su servicio móvil.

  1. Crear servicios móviles o iniciar sesión en uno propio. Para obtener más información sobre Mobile Services, vaya aquí.

  2. En la barra superior, haga clic en Programador.

    Notificaciones de inserción
  3. Cree un trabajo programado nuevo, inserte un nombre y haga clic en A petición.

    Notificaciones de inserción
  4. Después de crear el trabajo, haga clic en el nombre correspondiente. A continuación, en la barra superior, haga clic en Script.

  5. Inserte el script siguiente. Asegúrese de sustituir los marcadores de posición con el nombre del centro de notificaciones y la cadena de conexión de DefaultFullSharedAccessSignature que obtuvo previamente. Haga clic en Guardar.

    function PushToNotificationHub() {
        var azure = require('azure');
        
        var notificationHubService = azure.createNotificationHubService('<hub name>',
        '<connection string>');
    
        notificationHubService.hub.apple.send(
            null,
            {
                alert: "Hello from Mobile Services!"
            },
            function (error)
            {
                if (!error) {
                    console.warn("Notification successful");
                }
            }
        );
    }
    
  6. En la barra inferior, haga clic en Ejecutar una vez.

noteNota
Mobile Services usa el SDK de Windows Azure para que Node.js pueda acceder a los centros de notificaciones. Para obtener más información sobre el SDK de Windows Azure para Node.js con centros de notificaciones, vaya aquí.

Igual que el anterior, si se registran 10.000 instancias de cliente, el centro de notificaciones crea y envía las 10.000 copias de la notificación y realiza el control de errores y la administración de registros necesarios.

Pasos siguientes

Los centros de notificaciones proporcionan más características de utilidad. Consulte los temas siguientes para obtener más información acerca de los centros de notificaciones.

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

Mostrar:
© 2015 Microsoft