
AppboyKit (también conocido como SDK Objective-C) ya no recibe soporte y ha sido sustituido por Swift SDK. Ya no recibirá nuevas características, correcciones de errores, actualizaciones de seguridad ni soporte técnico; sin embargo, la mensajería y los análisis seguirán funcionando con normalidad. Para obtener más información, consulta Presentación del nuevo SDK Swift de Braze.
Integración push
Paso 1: Sube tu token de APN
Antes de que puedas enviar una notificación push de iOS utilizando Braze, tienes que cargar tu archivo de notificación push .p8, como se describe en la documentación para desarrolladores de Apple:
- En tu cuenta de desarrollador de Apple, ve a Certificates, Identifiers & Profiles.
- En Keys, selecciona All y haz clic en el botón de añadir (+) en la parte superior de la página.
- En Key Description, introduce un nombre único para la clave de firma.
- En Key Services, selecciona la casilla Apple Push Notification service (APNs) y, a continuación, haz clic en Continue. Haz clic en Confirm.
- Anota el ID de la clave. Haz clic en Download para generar y descargar la clave. Asegúrate de guardar el archivo descargado en un lugar seguro, ya que no puedes descargarlo más de una vez.
- En Braze, ve a Configuración > Configuración de la aplicación y carga el archivo
.p8en Apple Push Certificate. Puedes cargar tu certificado push de desarrollo o de producción. Para probar las notificaciones push después de que tu aplicación esté en vivo en la App Store, se recomienda configurar un espacio de trabajo separado para la versión de desarrollo de tu aplicación. - Cuando se te solicite, introduce el ID del paquete, el ID de la clave y el ID del equipo de tu aplicación. También tendrás que especificar si quieres enviar notificaciones al entorno de desarrollo o de producción de tu aplicación, que se define por su perfil de aprovisionamiento.
- Cuando hayas terminado, selecciona Guardar.
Paso 2: Habilitar las capacidades de push
En la configuración de tu proyecto, asegúrate de que en la pestaña Capabilities, la capacidad Push Notifications esté activada.

Si tienes certificados push de desarrollo y producción separados, asegúrate de desmarcar la casilla Automatically manage signing en la pestaña General. Esto te permitirá elegir diferentes perfiles de aprovisionamiento para cada configuración de compilación, ya que la función de firma automática de código de Xcode solo realiza la firma de desarrollo.

Paso 3: Registrarse para notificaciones push
El ejemplo de código apropiado debe incluirse dentro del método delegado application:didFinishLaunchingWithOptions: de tu aplicación para que los dispositivos de tus usuarios se registren con APN. Asegúrate de llamar a todo el código de integración push en el hilo principal de tu aplicación.
Braze también proporciona categorías push predeterminadas para la compatibilidad con botones de acción para notificación push, que deben añadirse manualmente a tu código de registro push. Consulta botones de acción para notificación push para conocer los pasos de integración adicionales.

Si has implementado un aviso push personalizado como se describe en nuestras mejores prácticas de push, asegúrate de llamar al siguiente código cada vez que se ejecute la aplicación después de que concedan permisos push a tu aplicación. Las aplicaciones necesitan volver a registrarse con APN, ya que los tokens de dispositivo pueden cambiar de forma arbitraria.
Uso del framework UserNotification (iOS 10+)
Si estás utilizando el framework UserNotifications (recomendado) introducido en iOS 10, añade el siguiente código al método application:didFinishLaunchingWithOptions: del delegado de tu aplicación.

El siguiente ejemplo de código incluye la integración para la autenticación push provisional (líneas 5 y 6). Si no tienes previsto usar la autorización provisional en tu aplicación, puedes eliminar las líneas de código que añaden UNAuthorizationOptionProvisional a las opciones de requestAuthorization.
Visita Opciones de notificación de iOS para obtener más información sobre la autenticación push provisional.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) {
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = self;
UNAuthorizationOptions options = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
if (@available(iOS 12.0, *)) {
options = options | UNAuthorizationOptionProvisional;
}
[center requestAuthorizationWithOptions:options
completionHandler:^(BOOL granted, NSError * _Nullable error) {
[[Appboy sharedInstance] pushAuthorizationFromUserNotificationCenter:granted];
}];
[[UIApplication sharedApplication] registerForRemoteNotifications];
} else {
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound) categories:nil];
[[UIApplication sharedApplication] registerForRemoteNotifications];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if #available(iOS 10, *) {
let center = UNUserNotificationCenter.current()
center.delegate = self as? UNUserNotificationCenterDelegate
var options: UNAuthorizationOptions = [.alert, .sound, .badge]
if #available(iOS 12.0, *) {
options = UNAuthorizationOptions(rawValue: options.rawValue | UNAuthorizationOptions.provisional.rawValue)
}
center.requestAuthorization(options: options) { (granted, error) in
Appboy.sharedInstance()?.pushAuthorization(fromUserNotificationCenter: granted)
}
UIApplication.shared.registerForRemoteNotifications()
} else {
let types : UIUserNotificationType = [.alert, .badge, .sound]
let setting : UIUserNotificationSettings = UIUserNotificationSettings(types:types, categories:nil)
UIApplication.shared.registerUserNotificationSettings(setting)
UIApplication.shared.registerForRemoteNotifications()
}

Debes asignar tu objeto delegado usando center.delegate = self de forma síncrona antes de que tu aplicación termine de iniciarse, preferiblemente en application:didFinishLaunchingWithOptions:. No hacerlo puede provocar que tu aplicación pierda notificaciones push entrantes. Visita la documentación de Apple sobre UNUserNotificationCenterDelegate para obtener más información.
Sin el framework UserNotifications
Si no estás utilizando el framework UserNotifications, añade el siguiente código al método application:didFinishLaunchingWithOptions: del delegado de tu aplicación:
1
2
3
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound) categories:nil];
[[UIApplication sharedApplication] registerForRemoteNotifications];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
1
2
3
4
let types : UIUserNotificationType = UIUserNotificationType.Badge | UIUserNotificationType.Sound | UIUserNotificationType.Alert
var setting : UIUserNotificationSettings = UIUserNotificationSettings(forTypes: types, categories: nil)
UIApplication.shared.registerUserNotificationSettings(setting)
UIApplication.shared.registerForRemoteNotifications()
Paso 4: Registrar tokens de notificaciones push con Braze
Una vez que se complete el registro en APN, se debe modificar el siguiente método para pasar el deviceToken resultante a Braze, de modo que el usuario quede habilitado para recibir notificaciones push:
Añade el siguiente código a tu método application:didRegisterForRemoteNotificationsWithDeviceToken::
1
[[Appboy sharedInstance] registerDeviceToken:deviceToken];
Añade el siguiente código al método application(_:didRegisterForRemoteNotificationsWithDeviceToken:) de tu aplicación:
1
Appboy.sharedInstance()?.registerDeviceToken(deviceToken)

El método delegado application:didRegisterForRemoteNotificationsWithDeviceToken: se llama cada vez que se ejecuta [[UIApplication sharedApplication] registerForRemoteNotifications]. Si estás migrando a Braze desde otro servicio push y el dispositivo de tu usuario ya se ha registrado con APN, este método recopilará los tokens de los registros existentes la próxima vez que se llame, y los usuarios no tendrán que volver a dar su adhesión voluntaria a las notificaciones push.
Paso 5: Habilitar la gestión de push
El siguiente código pasa las notificaciones push recibidas a Braze y es necesario para registrar los análisis de push y la gestión de enlaces. Asegúrate de llamar a todo el código de integración push en el hilo principal de tu aplicación.
iOS 10+
Al compilar con iOS 10+, te recomendamos que integres el framework UserNotifications y hagas lo siguiente:
Añade el siguiente código al método application:didReceiveRemoteNotification:fetchCompletionHandler: de tu aplicación:
1
2
3
[[Appboy sharedInstance] registerApplication:application
didReceiveRemoteNotification:userInfo
fetchCompletionHandler:completionHandler];
A continuación, añade el siguiente código al método (void)userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: de tu aplicación:
1
2
3
[[Appboy sharedInstance] userNotificationCenter:center
didReceiveNotificationResponse:response
withCompletionHandler:completionHandler];
Gestión de push en primer plano
Para mostrar una notificación push mientras la aplicación está en primer plano, implementa userNotificationCenter:willPresentNotification:withCompletionHandler::
1
2
3
4
5
6
7
8
9
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler {
if (@available(iOS 14.0, *)) {
completionHandler(UNNotificationPresentationOptionList | UNNotificationPresentationOptionBanner);
} else {
completionHandler(UNNotificationPresentationOptionAlert);
}
}
Si se hace clic en la notificación en primer plano, se llamará al delegado de push de iOS 10 userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:, y Braze registrará un evento de clic de push.
Añade el siguiente código al método application(_:didReceiveRemoteNotification:fetchCompletionHandler:) de tu aplicación:
1
2
3
Appboy.sharedInstance()?.register(application,
didReceiveRemoteNotification: userInfo,
fetchCompletionHandler: completionHandler)
A continuación, añade el siguiente código al método userNotificationCenter(_:didReceive:withCompletionHandler:) de tu aplicación:
1
2
3
Appboy.sharedInstance()?.userNotificationCenter(center,
didReceive: response,
withCompletionHandler: completionHandler)
Gestión de push en primer plano
Para mostrar una notificación push mientras la aplicación está en primer plano, implementa userNotificationCenter(_:willPresent:withCompletionHandler:):
1
2
3
4
5
6
7
8
9
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
if #available(iOS 14.0, *) {
completionHandler([.list, .banner]);
} else {
completionHandler([.alert]);
}
}
Si se hace clic en la notificación en primer plano, se llamará al delegado de push de iOS 10 userNotificationCenter(_:didReceive:withCompletionHandler:), y Braze registrará un evento de clic de push.
Anterior a iOS 10
iOS 10 actualizó el comportamiento de modo que ya no llama a application:didReceiveRemoteNotification:fetchCompletionHandler: cuando se hace clic en un push. Por esta razón, si no actualizas a compilar con iOS 10+ y usas el framework UserNotifications, tienes que llamar a Braze desde ambos delegados de estilo antiguo, lo que supone un cambio respecto a nuestra integración anterior.
Para aplicaciones que compilen con SDK < iOS 10, utiliza las siguientes instrucciones:
Para habilitar el seguimiento de aperturas en las notificaciones push, añade el siguiente código al método application:didReceiveRemoteNotification:fetchCompletionHandler: de tu aplicación:
1
2
3
[[Appboy sharedInstance] registerApplication:application
didReceiveRemoteNotification:userInfo
fetchCompletionHandler:completionHandler];
Para admitir los análisis de push en iOS 10, también debes añadir el siguiente código al método delegado application:didReceiveRemoteNotification: de tu aplicación:
1
2
[[Appboy sharedInstance] registerApplication:application
didReceiveRemoteNotification:userInfo];
Para habilitar el seguimiento de aperturas en las notificaciones push, añade el siguiente código al método application(_:didReceiveRemoteNotification:fetchCompletionHandler:) de tu aplicación:
1
2
3
Appboy.sharedInstance()?.register(application,
didReceiveRemoteNotification: userInfo,
fetchCompletionHandler: completionHandler)
Para admitir los análisis de push en iOS 10, también debes añadir el siguiente código al método delegado application(_:didReceiveRemoteNotification:) de tu aplicación:
1
2
Appboy.sharedInstance()?.register(application,
didReceiveRemoteNotification: userInfo)
Paso 6: Vinculación en profundidad
La vinculación en profundidad desde una notificación push hacia la aplicación se gestiona automáticamente a través de nuestra documentación estándar de integración push. Si quieres saber más sobre cómo añadir vínculos profundos a ubicaciones específicas de tu aplicación, consulta nuestros ejemplos avanzados.
Paso 7: Pruebas unitarias (opcional)
Para añadir cobertura de pruebas a los pasos de integración que acabas de seguir, implementa pruebas unitarias de push.