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 に追加します。

In Xcode, under frameworks and libraries, select the "+" icon to add a framework.

![](/docs/ja/assets/img/ios/push_story/spm2.png?93f5cede1806d7d7e5ad3eda8b3cad8d)

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

![](/docs/ja/assets/img/ios/push_story/manual1.png?a383359850a839b444cee8f8c37eeb16)

[ビルド設定] > [その他のリンカーフラグ] でプロジェクトの 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 では、デフォルトの実装を削除し、次のコードを追加します。

```objc @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

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

```swift 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!