Skip to content


Configuração do story por push

O recurso Push Story requer o framework UNNotification e o iOS 10. O recurso só está disponível a partir da versão 3.2.1 do SDK do iOS.

Etapa 1: Ative o push em seu aplicativo

Siga a integração de notificações por push para ativar o push em seu app.

Etapa 2: Adição do direcionamento da extensão de conteúdo de notificação

Em seu projeto de app, acesse o menu File > New > Target… (Arquivo > Novo > Direcionamento…) e adicione um novo direcionamento Notification Content Extension e ative-o.

O Xcode deve gerar um novo alvo e criar arquivos automaticamente para você, incluindo:

  • NotificationViewController.h
  • NotificationViewController.m
  • MainInterface.storyboard
  • NotificationViewController.swift
  • MainInterface.storyboard

Etapa 3: Ativar recursos

O recurso Push Story requer o modo em segundo plano na seção Recursos do direcionamento do aplicativo principal. Depois de ativar os modos em segundo plano, selecione Background fetch (Recuperação em segundo plano) e Remote notifications (Notificações remotas).

Adicionando um grupo de app

Você também precisa adicionar Capability App Groups. Se você não tiver nenhum grupo de app em seu aplicativo, acesse o recurso do direcionamento do aplicativo principal, ative o App Groups e clique no botão +. Use o ID do pacote de seu aplicativo para criar o grupo de app. Por exemplo, se o ID do pacote do seu app for com.company.appname, você poderá nomear o grupo do app como group.com.company.appname.xyz. Você precisa ativar o App Groups para os destinos do app principal e da extensão de conteúdo.

Se você não adicionar seu app a um grupo de apps, seu aplicativo poderá não preencher determinados campos da carga útil do push e não funcionará totalmente como esperado.

Etapa 4: Adição do framework Push Story ao seu app

Depois de seguir o guia de integração do Swift Package Manager, adicione AppboyPushStory ao seu Notification Content Extension:

No Xcode, em estruturas e bibliotecas, selecione o ícone "+" para adicionar uma estrutura.

Adicione a seguinte linha ao seu Podfile:

1
2
3
target 'YourContentExtensionTarget' do
  pod 'Appboy-Push-Story'
end

Depois de atualizar o Podfile, navegue até o diretório do seu projeto de app do Xcode no terminal e execute pod install.

Baixe a versão mais recente do AppboyPushStory.zip na página de lançamento do GitHub, extraia-a e adicione os seguintes arquivos ao Notification Content Extension do seu projeto:

  • Resources/ABKPageView.nib
  • AppboyPushStory.xcframework

Adicione o sinalizador -ObjC ao Notification Content Extension do seu projeto em **Build Settings > Other Linker Flags **.

Etapa 5: Atualização do Notification View Controller

Em seu site NotificationViewController.h, adicione as seguintes linhas para adicionar novas propriedades e importar os arquivos de cabeçalho:

1
#import <AppboyPushStory/AppboyPushStory.h>
1
2
@property (nonatomic) IBOutlet ABKStoriesView *storiesView;
@property (nonatomic) ABKStoriesViewDataSource *dataSource;

Em NotificationViewController.m, remova a implementação padrão e adicione o seguinte 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

Em NotificationViewController.swift, adicione a seguinte linha para importar os arquivos de cabeçalho:

1
import AppboyPushStory

Em seguida, remova a implementação padrão e adicione o seguinte 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)
  }
}

Etapa 6: Definir o storyboard da extensão do conteúdo da notificação

Abra o storyboard Notification Content Extension e coloque um novo UIView no notification view controller. Renomeie a classe para ABKStoriesView. Faça com que a largura e a altura da exibição sejam redimensionáveis automaticamente, de acordo com o quadro de exibição principal do controlador de exibição de notificação.

Em seguida, vincule o IBOutlet storiesView do notification view controller ao ABKStoriesView adicionado.

Etapa 7: Definir o plist de extensão do conteúdo da notificação

Abra o arquivo Info.plist do Notification Content Extension e adicione e altere as seguintes chaves em NSExtension \ NSExtensionAttributes:

UNNotificationExtensionCategory = ab_cat_push_story_v2 ( tipoString ) UNNotificationExtensionDefaultContentHidden = YES ( tipoBoolean ) UNNotificationExtensionInitialContentSizeRatio = 0.65 ( tipoNumber )

Etapa 8: Atualização da integração do Braze em seu app principal

Opção 1: Tempo de execução

No dicionário appboyOptions usado para configurar sua instância da Braze, adicione uma entrada ABKPushStoryAppGroupKey e defina o valor como seu identificador de API do espaço de trabalho.

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)
Opção 2: Info.plist

Como alternativa, para configurar o espaço de trabalho do Story por push a partir do arquivo Info.plist, adicione um dicionário chamado Braze ao arquivo Info.plist. No dicionário Braze, adicione uma subentrada PushStoryAppGroup do tipo string e defina o valor como seu identificador de espaço de trabalho. Observe que antes do Braze iOS SDK v4.0.2, a chave do dicionário Appboy deve ser usada no lugar de Braze.

Próximas etapas

Em seguida, consulte as etapas para integrar os botões de ação, o que é necessário para que os botões sejam exibidos em uma mensagem de story por push.

New Stuff!