Skip to content

Braze Swift SDKの初期化の遅延

Braze Swift SDKを非同期で初期化し、プッシュ通知の処理を確実に維持する方法を学習する。これは、SDKを初期化する前に、サーバーから設定データを取得したり、ユーザーの同意を待ったりするなど、他のサービスを設定する必要がある場合に便利である。

遅延初期化の設定

ステップ1:SDKの遅延初期化の準備

デフォルトでは、アプリが終了状態にある間にエンドユーザーがプッシュ通知を開封した場合、SDKが初期化される前にプッシュ通知を処理することはできない。

Braze Swift SDKバージョン10.1.0以降では、静的ヘルパーメソッドBraze.prepareForDelayedInitialization(pushAutomation:)を使用してこれを処理できる。このメソッドは、プッシュオートメーションシステムを設定することによって、SDKを遅延初期化のために準備する。

SDKが初期化される前に、Brazeから発信されるすべてのプッシュ通知がキャプチャされ、キューに入れられる。SDKが初期化された後、これらのプッシュ通知はSDKによって処理される。このメソッドは、アプリケーションのライフサイクルのなるべく早い段階で、AppDelegateapplication(_:didFinishLaunchingWithOptions:) メソッド内かその前に呼ばれなければならない。

1
2
3
4
5
6
7
8
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
  // Prepare the SDK for delayed initialization
  Braze.prepareForDelayedInitialization()

  // ... Additional non-Braze setup code

  return true
}

SwiftUI アプリケーションはprepareForDelayedInitialization() メソッドを呼び出すために@UIApplicationDelegateAdaptorプロパティラッパーを実装する必要がある。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@main
struct MyApp: App {
  @UIApplicationDelegateAdaptor var appDelegate: AppDelegate

  var body: some Scene {
    WindowGroup {
      ContentView()
    }
  }
}

class AppDelegate: NSObject, UIApplicationDelegate {
  
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
    // Prepare the SDK for delayed initialization
    Braze.prepareForDelayedInitialization()

    // ... Additional non-Braze setup code

    return true
  }
  
}
1
2
3
4
5
6
7
8
9
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // Prepare the SDK for delayed initialization
  [Braze prepareForDelayedInitialization];
  
  // ... Additional non-Braze setup code

  return YES;
}

ステップ 2:Braze SDKの初期化

SDKを遅延初期化のために準備した後、将来いつでもSDKを非同期で初期化できる。その後、SDKはBrazeから発信されるキューに入ったすべてのプッシュ通知イベントを処理する。

Braze SDKを初期化するには、標準的なSwift SDK初期化プロセスに従う。

考慮事項

Braze.prepareForDelayedInitialization(pushAutomation:) を使用することで、プッシュ通知のオートメーション機能を自動的に使用するようにSDKを設定することになる。プッシュ通知を処理するシステムデリゲートメソッドは、Brazeから発信されたプッシュ通知に対しては呼び出されない。

SDKは、SDKが初期化された後にのみ、Brazeプッシュ通知とその結果のアクションを処理する。例えば、ユーザーがディープリンクを開封するプッシュ通知をタップした場合、ディープリンクはBraze インスタンスが初期化された後にのみ開封される。

Brazeプッシュ通知に追加処理を行う必要がある場合は、プッシュ通知更新のサブスクライバーを参照。以前にエンキューされたプッシュ通知の更新を受信するには、SDKを初期化した後、サブスクリプションハンドラを直接実装する必要があることに留意されたい。

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