
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.
Configuración de Push Stories
La función Push Stories requiere el framework UNNotification e iOS 10. La función solo está disponible a partir de la versión 3.2.1 del SDK de iOS.
Paso 1: Habilitar push en tu aplicación
Sigue la integración de notificaciones push para habilitar el push en tu aplicación.
Paso 2: Añadir el objetivo de la extensión de contenido de notificación
En el proyecto de tu aplicación, ve al menú File > New > Target… y añade un nuevo objetivo Notification Content Extension y actívalo.

Xcode debería generar un nuevo objetivo y crear archivos automáticamente para ti, entre ellos:
NotificationViewController.hNotificationViewController.mMainInterface.storyboard
NotificationViewController.swiftMainInterface.storyboard
Paso 3: Habilitar capacidades
La característica Push Stories requiere el modo en segundo plano en la sección Capabilities del objetivo principal de la aplicación. Después de activar los modos en segundo plano, selecciona Background fetch y Remote notifications.

Añadir un grupo de aplicaciones
También necesitas añadir Capability App Groups. Si no tienes ningún grupo de aplicaciones en tu aplicación, ve a la Capability del objetivo principal de la aplicación, activa App Groups y haz clic en el botón +. Utiliza el ID del paquete de tu aplicación para crear el grupo de aplicaciones. Por ejemplo, si el ID del paquete de tu aplicación es com.company.appname, puedes llamar a tu grupo de aplicaciones group.com.company.appname.xyz. Debes activar App Groups tanto para la aplicación principal como para los objetivos de extensión de contenido.

App Groups en este contexto se refiere al derecho a grupos de aplicaciones de Apple y no a tu ID de espacio de trabajo de Braze (anteriormente grupo de aplicaciones).
Si no añades tu aplicación a un grupo de aplicaciones, es posible que tu aplicación no rellene determinados campos de la carga útil push y no funcione completamente como se espera.
Paso 4: Añadir el framework de Push Stories a tu aplicación
Después de seguir la guía de integración de Swift Package Manager, añade AppboyPushStory a tu Notification Content Extension:


Añade la siguiente línea a tu archivo de bibliotecas:
1
2
3
target 'YourContentExtensionTarget' do
pod 'Appboy-Push-Story'
end
Tras actualizar el archivo de bibliotecas, ve al directorio de tu proyecto de aplicación Xcode dentro de tu terminal y ejecuta pod install.
Descarga la última versión de AppboyPushStory.zip de la página de versiones de GitHub, extráela y añade los siguientes archivos a la Notification Content Extension de tu proyecto:
Resources/ABKPageView.nibAppboyPushStory.xcframework


Asegúrate de que la opción Do Not Embed está seleccionada para AppboyPushStory.xcframework en la columna Embed.
Añade la bandera -ObjC a la Notification Content Extension de tu proyecto en Build Settings > Other Linker Flags.
Paso 5: Actualizar tu controlador de vista de notificación
En tu NotificationViewController.h, añade las siguientes líneas para añadir nuevas propiedades e importar los archivos de cabecera:
1
#import <AppboyPushStory/AppboyPushStory.h>
1
2
@property (nonatomic) IBOutlet ABKStoriesView *storiesView;
@property (nonatomic) ABKStoriesViewDataSource *dataSource;
En tu NotificationViewController.m, elimina la implementación predeterminada y añade el siguiente código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@implementation NotificationViewController
- (void)didReceiveNotification:(UNNotification *)notification {
self.dataSource = [[ABKStoriesViewDataSource alloc] initWithNotification:notification
storiesView:self.storiesView
appGroup:@"YOUR-APP-GROUP-IDENTIFIER"];
}
- (void)didReceiveNotificationResponse:(UNNotificationResponse *)response
completionHandler:(void (^)(UNNotificationContentExtensionResponseOption option))completion {
UNNotificationContentExtensionResponseOption option = [self.dataSource didReceiveNotificationResponse:response];
completion(option);
}
- (void)viewWillDisappear:(BOOL)animated {
[self.dataSource viewWillDisappear];
[super viewWillDisappear:animated];
}
@end
En tu NotificationViewController.swift, añade la siguiente línea para importar los archivos de cabecera:
1
import AppboyPushStory
A continuación, elimina la implementación predeterminada y añade el siguiente código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class NotificationViewController: UIViewController, UNNotificationContentExtension {
@IBOutlet weak var storiesView: ABKStoriesView!
var dataSource: ABKStoriesViewDataSource?
func didReceive(_ notification: UNNotification) {
dataSource = ABKStoriesViewDataSource(notification: notification, storiesView: storiesView, appGroup: "YOUR-APP-GROUP-IDENTIFIER")
}
func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void) {
if dataSource != nil {
let option: UNNotificationContentExtensionResponseOption = dataSource!.didReceive(response)
completion(option)
}
}
override func viewWillDisappear(_ animated: Bool) {
dataSource?.viewWillDisappear()
super.viewWillDisappear(animated)
}
}
Paso 6: Configurar el storyboard de la extensión de contenido de notificación
Abre el storyboard de Notification Content Extension y coloca un nuevo UIView en el controlador de la vista de notificación. Cambia el nombre de la clase a ABKStoriesView. Haz que la anchura y la altura de la vista se ajusten automáticamente al marco de la vista principal del controlador de la vista de notificación.


A continuación, enlaza el IBOutlet storiesView del controlador de la vista de notificación con el ABKStoriesView añadido.

Paso 7: Configurar el plist de la extensión de contenido de notificación
Abre el archivo Info.plist de Notification Content Extension y añade y cambia las siguientes claves en NSExtension \ NSExtensionAttributes:
UNNotificationExtensionCategory = ab_cat_push_story_v2 (tipo String)
UNNotificationExtensionDefaultContentHidden = YES (tipo Boolean)
UNNotificationExtensionInitialContentSizeRatio = 0.65 (tipo Number)

Paso 8: Actualizar la integración de Braze en tu aplicación principal
Opción 1: Tiempo de ejecución
En el diccionario appboyOptions utilizado para configurar tu instancia de Braze, añade una entrada ABKPushStoryAppGroupKey y establece el valor en el identificador de API de tu espacio de trabajo.
1
2
3
4
5
6
NSMutableDictionary *appboyOptions = [NSMutableDictionary dictionary];
appboyOptions[ABKPushStoryAppGroupKey] = @"YOUR-APP-GROUP-IDENTIFIER";
[Appboy startWithApiKey:@"YOUR-API-KEY"
inApplication:application
withLaunchOptions:launchOptions
withAppboyOptions:appboyOptions];
1
2
3
4
let appboyOptions: [AnyHashable: Any] = [
ABKPushStoryAppGroupKey : "YOUR-APP-GROUP-IDENTIFIER"
]
Appboy.start(withApiKey: "YOUR-API-KEY", in:application, withLaunchOptions:launchOptions, withAppboyOptions:appboyOptions)
Opción 2: Info.plist
Alternativamente, para configurar el espacio de trabajo de Push Stories desde tu archivo Info.plist, añade un diccionario llamado Braze a tu archivo Info.plist. Dentro del diccionario Braze, añade una subentrada de tipo cadena PushStoryAppGroup y establece el valor en el identificador de tu espacio de trabajo. 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.
Próximos pasos
A continuación, consulta los pasos para la integración de botones de acción, necesaria para que los botones se muestren en un mensaje de Push Stories.