Skip to content


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.

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.h
  • NotificationViewController.m
  • MainInterface.storyboard
  • NotificationViewController.swift
  • MainInterface.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.

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.

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:

En Xcode, en frameworks y bibliotecas, selecciona el icono "+" para añadir un framework.

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.nib
  • AppboyPushStory.xcframework

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.

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.

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.

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.

Captura de pantalla relacionada con el paso 6: configurar el storyboard de la extensión de contenido de notificación.

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)

Captura de pantalla relacionada con el paso 7: configurar el plist de la extensión de contenido de notificación.

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.

New Stuff!