Skip to content


Push Story のセットアップ

Push Story 機能を使用するには、UNNotification フレームワークと iOS 10が必要です。この機能は iOS SDK バージョン3.2.1以降でのみ利用可能です。

ステップ 1:アプリでプッシュを有効にする

プッシュ通知統合に従って、アプリでプッシュを有効にします。

ステップ 2:通知コンテンツ拡張ターゲットを追加する

アプリプロジェクトで、メニュー [ファイル] > [新規] > [ターゲット…] を選択し、新しい Notification Content Extension ターゲットを追加してアクティブ化します。

Xcode によって新しいターゲットが生成され、次のようなファイルが自動的に作成されるはずです。

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

ステップ 3: 機能を有効にする

Push Story 機能では、メインアプリターゲットの [機能] セクションのバックグラウンドモードが必要です。バックグラウンドモードをオンにしたら、[バックグラウンドフェッチ] と [リモート通知] を選択します。

アプリグループの追加

Capability App Groups も追加する必要があります。アプリにアプリグループがない場合は、メインアプリターゲットの [機能] に移動し、App Groups をオンにして [+] ボタンをクリックします。アプリのバンドル ID を使用してアプリグループを作成します。たとえば、アプリのバンドル ID が com.company.appname の場合、アプリグループに group.com.company.appname.xyz という名前を付けることができます。メインアプリとコンテンツ拡張ターゲットの両方で App Groups をオンにする必要があります。

アプリをアプリグループに追加しないと、アプリがプッシュペイロードからの特定のフィールドの入力に失敗し、期待したとおりに完全に動作しない可能性があります。

ステップ4: Push Story フレームワークをアプリに追加する

Swift Package Manager の統合ガイドに従って、AppboyPushStoryNotification Content Extension に追加します。

Xcodeのフレームワークとライブラリの下にある「+」アイコンを選択して、フレームワークを追加する。

次の行を Podfile に追加します。

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

Podfile を更新したら、ターミナル内で Xcode アプリプロジェクトのディレクトリーに移動し、pod install を実行します。

GitHub リリースページから最新の AppboyPushStory.zip をダウンロードして展開し、以下のファイルをプロジェクトの Notification Content Extension に追加します。

  • Resources/ABKPageView.nib
  • AppboyPushStory.xcframework

[ビルド設定] > [その他のリンカーフラグ] でプロジェクトの Notification Content Extension-ObjC フラグを追加します。

ステップ 5:通知ビューコントローラーを更新する

NotificationViewController.h で、次の行を追加して新しいプロパティを追加し、ヘッダーファイルをインポートします。

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

NotificationViewController.m では、デフォルトの実装を削除し、次のコードを追加します。

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

NotificationViewController.swift で、次の行を追加してヘッダーファイルをインポートします。

1
import AppboyPushStory

次に、デフォルトの実装を削除し、次のコードを追加します。

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)
  }
}

ステップ 6: 通知コンテンツ拡張ストーリーボードを設定する

Notification Content Extension ストーリーボードを開き、通知ビューコントローラーに新しい UIView を配置します。クラスの名前を ABKStoriesView に変更します。通知ビューコントローラのメインビューフレームに合わせて、ビューの幅と高さを自動サイズ変更可能にします。

次に、追加された ABKStoriesView に通知ビューコントローラーの storiesView IBOutlet をリンクします。

ステップ 7:通知コンテンツ拡張 plist を設定する

Notification Content ExtensionInfo.plist ファイルを開き、NSExtension \ NSExtensionAttributes で以下のキーを追加および変更します。

UNNotificationExtensionCategory = ab_cat_push_story_v2 (String タイプ) UNNotificationExtensionDefaultContentHidden = YES (Boolean タイプ) UNNotificationExtensionInitialContentSizeRatio = 0.65 (Number タイプ)

ステップ 8:メインアプリでの Braze 統合のアップデート

オプション 1: ランタイム

Braze インスタンスの設定に使用する appboyOptions 辞書で、ABKPushStoryAppGroupKey エントリを追加し、値をワークスペース API 識別子に設定します。

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)
オプション2: Info.plist

または、Info.plist ファイルから Push Story ワークスペースを構成するには、Braze という名前の辞書を Info.plist ファイルに追加します。Braze辞書内で、文字列型の PushStoryAppGroup サブエントリを追加し、値をワークスペース識別子に設定します。なお、Braze iOS SDK v4.0.2より前のバージョンでは、Braze の代わりに辞書キー Appboy を使用する必要があります。

次のステップ:

次に、アクションボタンを統合する手順を参照してください。これはプッシュストーリーメッセージにボタンを表示するために必要です。

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