Skip to content

コンテンツカードの統合

このリファレンス記事では、コンテンツカードの統合と、Swift アプリケーションで利用できるさまざまなデータモデルおよびカード固有プロパティについて説明します。

デフォルトのコンテンツカード UI は、Braze SDK の BrazeUI ライブラリーから統合できます。braze インスタンスを使用して、コンテンツカードビューコントローラーを作成します。コンテンツカードの UI ライフサイクルをインターセプトして対応するには、BrazeContentCardUIViewControllerDelegateBrazeContentCardUI.ViewController のデリゲートとして実装します。

Swift SDK の BrazeUI ライブラリーでは、ナビゲーションとモーダルという2つのデフォルトビューコントローラーコンテキストが提供されています。つまり、アプリやサイトに数行のコードを追加することで、これらのコンテキストにおいてコンテンツカードを統合できます。「カスタマイズガイド」で説明されているように、どちらのビューにもカスタマイズとスタイル指定のオプションが用意されています。Braze の標準ビューコントローラーの代わりにカスタムコンテンツカードビューコントローラーを作成して、カスタマイズオプションをさらに増やすこともできます。例については、コンテンツカードの UI チュートリアルを参照してください。

ナビゲーションコンテキスト

ナビゲーションコントローラーは、ナビゲーションインターフェイス内の1つ以上の子ビューコントローラーを管理するビューコントローラーです。以下は、BrazeContentCardUI.ViewController インスタンスをナビゲーションコントローラーにプッシュする例です。

1
2
3
4
5
6
7
func pushViewController() {
  guard let braze = AppDelegate.braze else { return }
  let contentCardsController = BrazeContentCardUI.ViewController(braze: braze)
  // Implement and set `BrazeContentCardUIViewControllerDelegate` if you wish to intercept click actions.
  contentCardsController.delegate = self
  self.navigationController?.pushViewController(contentCardsController, animated: true)
}
1
2
3
4
5
6
- (void)pushViewController {
  BRZContentCardUIViewController *contentCardsController = [[BRZContentCardUIViewController alloc] initWithBraze:self.braze];
  // Implement and set `BrazeContentCardUIViewControllerDelegate` if you wish to intercept click actions.
  [contentCardsController setDelegate:self];
  [self.navigationController pushViewController:contentCardsController animated:YES];
}

モーダルコンテキスト

モーダルプレゼンテーションを使用して、ユーザーに重要情報の入力を求める場合などに、アプリのワークフローを一時的に中断させることができます。このモデルビューでは、上部にナビゲーションバーがあり、バーの横に [完了] ボタンがあります。以下は、BrazeContentCard.ViewController インスタンスをモーダルコントローラーにプッシュする例です。

1
2
3
4
5
6
7
func presentModalViewController() {
  guard let braze = AppDelegate.braze else { return }
  let contentCardsModal = BrazeContentCardUI.ModalViewController(braze: braze)
  // Implement and set `BrazeContentCardUIViewControllerDelegate` if you wish to intercept click actions.
  contentCardsModal.viewController.delegate = self
  self.navigationController?.present(contentCardsModal, animated: true, completion: nil)
}
1
2
3
4
5
6
- (void)presentModalViewController {
  BRZContentCardUIModalViewController *contentCardsModal = [[BRZContentCardUIModalViewController alloc] initWithBraze:AppDelegate.braze];
  // Implement and set `BrazeContentCardUIViewControllerDelegate` if you wish to intercept click actions.
  [contentCardsModal.viewController setDelegate:self];
  [self.navigationController presentViewController:contentCardsModal animated:YES completion:nil];
}

BrazeUI ビューコントローラーの使用例については、サンプルアプリで対応するコンテンツカードの UI サンプルを確認してください。

コンテンツカードデータモデル

コンテンツカードデータモデルは、iOS Swift SDK の BrazeKit モジュールで利用できます。

Braze には、画像のみ、キャプション付き画像、クラシック、クラシック画像、コントロールという5種類のコンテンツカードがあります。それぞれの種類が、種類 Braze.ContentCard の実装です。Objective-C との互換性を確保するため、BrazeKit では代替の ContentCardRaw クラスが提供されていることを確認してください。

コンテンツカードプロパティの完全なリストと、コンテンツカードの使用に関する詳細については、ContentCard クラスのドキュメントを参照してください。

コンテンツカードデータモデルにアクセスするには、braze インスタンスで contentCards.cards を呼び出します。カードデータの購読の詳細については、「分析のロギング」を参照してください。

カードメソッド

各カードは、カードの状態を管理するためのさまざまなメソッドを含む Context オブジェクトを使用して初期化されます。特定のカードオブジェクトの対応する状態プロパティを変更する場合は、これらのメソッドを呼び出します。

メソッド 説明
card.context?.logImpression() コンテンツカードのインプレッションイベントをロギングします。
card.context?.logClick() コンテンツカードのクリックイベントをロギングします。
card.context?.processClickAction() 指定された ClickAction の入力を処理します。
card.context?.logDismissed() コンテンツカードを閉じたイベントをロギングします。
card.context?.logError() コンテンツカードに関連するエラーをロギングします。
card.context?.loadImage() URL から特定のコンテンツカード画像を読み込みます。コンテンツカードに画像がない場合、このメソッドは nil になることがあります。

詳細については、Context クラスのドキュメントを参照してください。

「このページはどの程度役に立ちましたか?」
New Stuff!