This page references our older Objective-C SDK. Check out our new Swift SDK to integrate our latest Swift-first library.
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
をオンにする必要があります。
この場合の App Groups
は、Apple の アプリグループ資格を指し、Braze ワークスペース (以前のアプリグループ) の ID ではありません。
アプリをアプリグループに追加しないと、アプリがプッシュペイロードからの特定のフィールドの入力に失敗し、期待したとおりに完全に動作しない可能性があります。
ステップ4: Push Story フレームワークをアプリに追加する
Swift Package Manager の統合ガイドに従って、AppboyPushStory
を Notification Content Extension
に追加します。
![](/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)
[埋め込み] 列の下の 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
では、デフォルトの実装を削除し、次のコードを追加します。
```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 Extension
の Info.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
を使用する必要があります。
次のステップ:
次に、アクションボタンを統合する手順を参照してください。これはプッシュストーリーメッセージにボタンを表示するために必要です。