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.
Ubicaciones y geovallas
Para habilitar geovallas en iOS:
- Tu integración debe admitir notificaciones push en segundo plano.
- Las geovallas de Braze deben habilitarse a través del SDK, ya sea habilitando implícitamente la recopilación de ubicaciones o habilitando explícitamente la recopilación de geovallas. No están habilitadas de forma predeterminada.
A partir de iOS 14, las geovallas no funcionan de forma fiable para los usuarios que deciden dar permiso de ubicación aproximada.
Paso 1: Habilitar el push en segundo plano
Para aprovechar al máximo nuestra estrategia de sincronización de geovallas, debes tener habilitado el push en segundo plano, además de completar la integración push estándar.
Paso 2: Habilitar geovallas
De forma predeterminada, las geovallas se habilitan en función de si está habilitada la recopilación automática de ubicaciones. Puedes habilitar las geovallas utilizando el archivo Info.plist. Añade el diccionario Braze a tu archivo Info.plist. Dentro del diccionario Braze, añade la subentrada Booleano EnableGeofences y establece el valor en YES. Ten en cuenta que, antes de la versión 4.0.2 del SDK de iOS de Braze, debe usarse la clave de diccionario Appboy en lugar de Braze.
También puedes habilitar las geovallas al iniciar la aplicación utilizando el método startWithApiKey:inApplication:withLaunchOptions:withAppboyOptions. En el diccionario appboyOptions, establece ABKEnableGeofencesKey en YES. Por ejemplo:
1
2
3
4
[Appboy startWithApiKey:@"YOUR-API_KEY"
inApplication:application
withLaunchOptions:options
withAppboyOptions:@{ ABKEnableGeofencesKey : @(YES) }];
1
2
3
4
Appboy.start(withApiKey: "YOUR-API-KEY",
in:application,
withLaunchOptions:launchOptions,
withAppboyOptions:[ ABKEnableGeofencesKey : true ])
Paso 3: Comprobar las notificaciones push en segundo plano de Braze
Braze sincroniza las geovallas con los dispositivos mediante notificaciones push en segundo plano. Sigue el artículo de personalización de iOS para asegurarte de que tu aplicación no realiza ninguna acción no deseada al recibir notificaciones de sincronización de geovallas de Braze.
Paso 4: Añadir NSLocationAlwaysUsageDescription a tu Info.plist
Añade las claves NSLocationAlwaysUsageDescription y NSLocationAlwaysAndWhenInUseUsageDescription a tu info.plist con un valor String que contenga una descripción de por qué tu aplicación necesita hacer seguimiento de ubicación. Ambas claves son necesarias para iOS 11 o posterior.
Esta descripción se mostrará cuando el aviso de ubicación del sistema solicite autorización y debe explicar claramente a tus usuarios las ventajas del seguimiento de ubicación.
Paso 5: Solicitar autorización al usuario
La característica de geovallas solo funciona cuando se concede la autorización de ubicación Always.
Para solicitar la autorización de ubicación Always, usa el siguiente código:
1
2
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
[locationManager requestAlwaysAuthorization];
1
2
var locationManager = CLLocationManager()
locationManager.requestAlwaysAuthorization()
Paso 6: Habilitar geovallas en el dashboard
iOS solo permite almacenar hasta 20 geovallas para una aplicación determinada. El uso de ubicaciones ocupará algunos de estos 20 espacios disponibles para geovallas. Para evitar interrupciones accidentales o no deseadas de otras funciones relacionadas con geovallas en tu aplicación, las geovallas de ubicación deben habilitarse para aplicaciones individuales en el dashboard.
Para que las ubicaciones funcionen correctamente, también debes confirmar que tu aplicación no está utilizando todos los espacios de geovalla disponibles.
Habilitar las geovallas desde la página de ubicaciones:

Habilitar las geovallas desde la página de configuración:

Desactivar las solicitudes automáticas de geovallas
A partir de la versión 3.21.3 del SDK de iOS, puedes desactivar la solicitud automática de geovallas. Puedes hacerlo utilizando el archivo Info.plist. Añade el diccionario Braze a tu archivo Info.plist. Dentro del diccionario Braze, añade la subentrada Booleano DisableAutomaticGeofenceRequests y establece el valor en YES.
También puedes desactivar las solicitudes automáticas de geovallas al iniciar la aplicación mediante el método startWithApiKey:inApplication:withLaunchOptions:withAppboyOptions. En el diccionario appboyOptions, establece ABKDisableAutomaticGeofenceRequestsKey en YES. Por ejemplo:
1
2
3
4
[Appboy startWithApiKey:@"YOUR-API_KEY"
inApplication:application
withLaunchOptions:options
withAppboyOptions:@{ ABKDisableAutomaticGeofenceRequestsKey : @(YES) }];
1
2
3
4
Appboy.start(withApiKey: "YOUR-API-KEY",
in:application,
withLaunchOptions:launchOptions,
withAppboyOptions:[ ABKDisableAutomaticGeofenceRequestsKey : true ])
Si decides utilizar esta opción, tendrás que solicitar manualmente las geovallas para que la característica funcione.
Solicitar geovallas manualmente
Cuando el SDK de Braze solicita geovallas para monitorizar desde el backend, informa de la ubicación actual del usuario y recibe geovallas que se determinan como óptimamente relevantes en función de la ubicación comunicada. Hay un límite de velocidad de una actualización de geovalla por sesión.
Para controlar la ubicación que informa el SDK con el fin de recibir las geovallas más relevantes, a partir de la versión 3.21.3 del SDK de iOS, puedes solicitar manualmente geovallas proporcionando la latitud y longitud de una ubicación. Se recomienda desactivar las solicitudes automáticas de geovallas cuando utilices este método. Para ello, utiliza el siguiente código:
1
2
[[Appboy sharedInstance] requestGeofencesWithLongitude:longitude
latitude:latitude];
1
Appboy.sharedInstance()?.requestGeofences(withLongitude: longitude, latitude: latitude)
Editar esta página en GitHub