Cursos
Módulo
Aprenda cómo crear mensajes de texto y notificaciones de inserción en Dynamics 365 Customer Insights - Journeys.
Este explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
En este tutorial se muestra cómo usar Azure Notification Hubs para enviar notificaciones push a una aplicación iOS mediante el SDK de Azure Notification Hubs para Apple.
En este tutorial se describen los pasos siguientes:
Puede descargar el código completo para este tutorial en GitHub.
Para completar este tutorial, debe cumplir los siguientes requisitos previos:
Antes de continuar, asegúrese de seguir el tutorial anterior sobre cómo empezar a usar Azure Notification Hubs para aplicaciones iOS, para instalar y configurar las credenciales push en el centro de notificaciones. Aunque no tenga ninguna experiencia previa con el desarrollo de iOS, debería poder seguir estos pasos.
Nota
Debido a los requisitos de configuración de las notificaciones push, debe implementar y probar estas en un dispositivo iOS físico (iPhone o iPad), en lugar de hacerlo en el emulador de iOS.
En Xcode, cree un nuevo proyecto de Xcode y seleccione la pestaña iOS y la plantilla Aplicación.
Al configurar las opciones para su nuevo proyecto, asegúrese de usar el nombre de producto y el identificador de organización que usó al establecer el identificador de conjunto en el portal de desarrollo de Apple. La agrupación identificada en la nueva ventana del proyecto debería rellenarse para que coincida con el conjunto identificado en el portal para desarrolladores de Apple. Esta propiedad distingue mayúsculas de minúsculas.
En Project Navigator (Explorador de proyectos), seleccione el nombre del proyecto en Targets (Destinos) y, a continuación, seleccione la pestaña Signing & Capabilities (Firma y funcionalidades). Asegúrese de seleccionar el equipo adecuado para la cuenta de desarrollador de Apple. XCode debe desplegar automáticamente el perfil de aprovisionamiento que creó anteriormente según en el identificador del conjunto.
Si no ve el nuevo perfil de aprovisionamiento que creó en Xcode, intente actualizar los perfiles de la identidad de firma. Haga clic en Xcode en la barra de menús, en Preferences (Preferencias), en la pestaña Account (Cuenta), en el botón View Details (Ver detalles), en la identidad de firma y, por último, en el botón Refresh (Actualizar) en la esquina inferior derecha.
En la pestaña Signing & Capabilities (Firma y funcionalidades), seleccione + Capability (Funcionalidad). Haga doble clic en Push Notifications (Notificaciones push) para habilitarla.
Agregue los módulos de SDK de Azure Notification Hubs.
Puede integrar el SDK de Microsoft Azure Notification Hubs en la aplicación mediante CocoaPods o mediante la adición manual de los archivos binarios al proyecto.
Integración mediante CocoaPods: agregue las siguientes dependencias al podfile para incluir el SDK de Microsoft Azure Notification Hubs en la aplicación:
pod 'AzureNotificationHubs-iOS'
Ejecute pod install para instalar el pod recién definido y abra el archivo .xcworkspace.
Si ve un error como No se puede encontrar una especificación para AzureNotificationHubs-iOS mientras se ejecuta pod install, ejecute pod repo update
para obtener los pods más recientes del repositorio de CocoaPods y, a continuación, ejecute pod install.
Integración a través de Carthage: agregue las siguientes dependencias al archivo Cartfile para incluir el SDK de Azure Notification Hubs en la aplicación:
github "Azure/azure-notificationhubs-ios"
$ carthage update
Para obtener más información sobre el uso de Carthage, consulte el repositorio de GitHub de Carthage.
Integración mediante la copia de los archivos binarios en el proyecto:
Puede realizar la integración mediante la copia de los archivos binarios en el proyecto, como se indica a continuación:
Descargue el marco SDK de Azure Notification Hubs proporcionado como archivo ZIP y descomprímalo.
En XCode, haga clic con el botón derecho en el proyecto y haga clic en la opción Add Files to (Agregar archivos a) para agregar la carpeta WindowsAzureMessaging.framework al proyecto de XCode. Seleccione Options (Opciones) y asegúrese de que Copy items if needed (Copiar elementos si es necesario) esté seleccionado. A continuación, haga clic en Add (Agregar).
Agregue o edite un archivo llamado DevSettings.plist que contiene dos propiedades, CONNECTION_STRING
para la cadena de conexión a la instancia de Azure Notification Hubs y HUB_NAME
para el nombre de dicha instancia.
Agregue la información para conectarse a Azure Notification Hubs en la sección <string></string>
correspondiente. Reemplace los marcadores de posición de literal de cadena --HUB-NAME--
y --CONNECTION-STRING--
por el nombre del centro de conectividad y por DefaultListenSharedAccessSignature respectivamente, tal como se obtuvo anteriormente en el portal:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>HUB_NAME</key>
<string>--HUB-NAME--</string>
<key>CONNECTION_STRING</key>
<string>--CONNECTION-STRING--</string>
</dict>
</plist>
En el mismo archivo AppDelegate.m, reemplace todo el código después de didFinishLaunchingWithOptions
por el código siguiente:
#import <WindowsAzureMessaging/WindowsAzureMessaging.h>
#import <UserNotifications/UserNotifications.h>
// Extend the AppDelegate to listen for messages using MSNotificationHubDelegate and User Notification Center
@interface AppDelegate () <MSNotificationHubDelegate>
@end
@implementation AppDelegate
@synthesize notificationPresentationCompletionHandler;
@synthesize notificationResponseCompletionHandler;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSString *path = [[NSBundle mainBundle] pathForResource:@"DevSettings" ofType:@"plist"];
NSDictionary *configValues = [NSDictionary dictionaryWithContentsOfFile:path];
NSString *connectionString = [configValues objectForKey:@"CONNECTION_STRING"];
NSString *hubName = [configValues objectForKey:@"HUB_NAME"];
if([connectionString length] != 0 && [hubName length] != 0) {
[[UNUserNotificationCenter currentNotificationCenter] setDelegate:self];
[MSNotificationHub setDelegate:self];
[MSNotificationHub initWithConnectionString:connectionString withHubName:hubName];
return YES;
}
NSLog(@"Please setup CONNECTION_STRING and HUB_NAME in DevSettings.plist and restart application");
exit(-1);
}
- (void)notificationHub:(MSNotificationHub *)notificationHub didReceivePushNotification:(MSNotificationHubMessage *)message {
// Send message using NSNotificationCenter with the message
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:message forKey:@"message"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"MessageReceived" object:nil userInfo:userInfo];
}
@end
Este código se conecta al centro de notificaciones usando la información de conexión que especificó en DevSettings.plist. Luego, proporciona el token del dispositivo al centro de notificaciones para que este pueda enviar notificaciones.
Al igual que en las instrucciones anteriores, agregue otro archivo de encabezado denominado NotificationDetailViewController.h. Reemplace el contenido del nuevo archivo de encabezado por el código siguiente:
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface SetupViewController : UIViewController
@end
NS_ASSUME_NONNULL_END
Agregue el archivo de implementación SetupViewController.m. Reemplace el contenido del archivo por el código siguiente, que implementa los métodos UIViewController:
#import "SetupViewController.h"
static NSString *const kNHMessageReceived = @"MessageReceived";
@interface SetupViewController ()
@end
@implementation SetupViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Listen for messages using NSNotificationCenter
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceivePushNotification:) name:kNHMessageReceived object:nil];
}
- (void)dealloc {
// Clean up subscription to NSNotificationCenter
[[NSNotificationCenter defaultCenter] removeObserver:self name:kNHMessageReceived object:nil];
}
- (void)didReceivePushNotification:(NSNotification *)notification {
MSNotificationHubMessage *message = [notification.userInfo objectForKey:@"message"];
// Create UI Alert controller with message title and body
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:message.title
message:message.body
preferredStyle:UIAlertControllerStyleAlert];
[alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleCancel handler:nil]];
[self presentViewController:alertController animated:YES completion:nil];
// Dismiss after 2 seconds
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[alertController dismissViewControllerAnimated:YES completion: nil];
});
}
@end
Para asegurarse de que no haya errores, compile y ejecute la aplicación en el dispositivo.
Puede probar de recibir notificaciones en la aplicación con la opción Envío de prueba en Azure Portal. Envía una notificación push de prueba al dispositivo.
Las notificaciones push se envían normalmente en un servicio back-end como Mobile Apps o ASP.NET mediante una biblioteca compatible. Si no hay disponible ninguna biblioteca para su back-end, también puede usar la API REST directamente para enviar mensajes de notificación.
A continuación, presentamos una lista de algunos otros tutoriales que podría interesarle revisar para enviar notificaciones:
Para probar las notificaciones push en iOS, debe implementar la aplicación en un dispositivo iOS físico. No puede enviar notificaciones push de Apple con el simulador de iOS.
Ejecute la aplicación y compruebe que el registro se realiza correctamente, luego presione OK(Aceptar).
Después, envíe una notificación push de prueba desde Azure Portal, como se ha descrito en la sección anterior.
La notificación push se envía a todos los dispositivos registrados para recibir las notificaciones del centro de notificaciones indicado.
En este sencillo ejemplo, se difunden notificaciones push a todos los dispositivos iOS registrados. Para aprender a enviar notificaciones push a dispositivos iOS específicos, pase al siguiente tutorial:
Tutorial: Envío de notificaciones push a dispositivos específicos
Para más información, consulte los siguientes artículos.
Cursos
Módulo
Aprenda cómo crear mensajes de texto y notificaciones de inserción en Dynamics 365 Customer Insights - Journeys.