オブザーバーモードでフローを表示する - Kotlin Multiplatform
オブザーバーモードを使用する場合、購入ロジックはご自身で実装する必要があります。ただし、ペイウォールのUIはフロー & ペイウォールビルダーに委任できます。
ビルダーでスクリーンをデザインすれば、Adapty SDK がそれをネイティブでレンダリングします。コピー、レイアウト、価格はいつでも変更でき、アプリのリリースは不要です。
このガイドでは、フローを表示して購入コールバックを処理する方法を説明します。Adapty に購入処理を任せる場合は、フローとペイウォールの表示 を参照してください。
はじめる前に
以下が必要です:
- Adapty Kotlin Multiplatform SDK 4.0(ベータ版)以降: それより前のバージョンはフローをレンダリングできません。既存アプリを移行する場合は、マイグレーションガイドをご覧ください。
- 設定ビルダーで
withObserverMode(true)を呼び出す: Kotlin Multiplatform SDK インストールガイドをご覧ください。 - ストアの初期連携: App Store との連携およびGoogle Play との連携を設定してください。
- プロダクトが割り当てられた公開済みフロー: フロー&ペイウォールビルダーで作成し、プロダクトを割り当ててください。
- フローのプレースメント: プレースメントを作成して、フローを割り当ててください。
- アプリ内でのフロー取得: 表示する前にフローとその設定を取得してください。
実装
Observerモードでは、SDKは代わりに購入処理を行いません。Adaptyがレンダリングするフローで購入ボタンまたは復元ボタンをユーザーがタップすると、SDKはあなたのAdaptyUIObserverModeResolverを呼び出します。そこで自分のコードを使って購入または復元を行ってください。
-
AdaptyUIObserverModeResolverインターフェースを実装します:import com.adapty.kmp.AdaptyUIObserverModeResolver import com.adapty.kmp.models.AdaptyPaywallProduct import com.adapty.kmp.models.AdaptyUIFlowView class MyObserverModeResolver : AdaptyUIObserverModeResolver { override fun observerModeDidInitiatePurchase( view: AdaptyUIFlowView, product: AdaptyPaywallProduct, onStartPurchase: () -> Unit, onFinishPurchase: () -> Unit ) { onStartPurchase() // the view shows its loading indicator // make the purchase with your own code, // then report the transaction to Adapty and call: onFinishPurchase() // the view hides the loading indicator } override fun observerModeDidInitiateRestore( view: AdaptyUIFlowView, onStartRestore: () -> Unit, onFinishRestore: () -> Unit ) { onStartRestore() // restore purchases with your own code, then: onFinishRestore() } }
observerModeDidInitiatePurchase メソッドはユーザーが購入を開始したことを通知し、observerModeDidInitiateRestore はユーザーがリストアを開始したことを通知します。それぞれに応じて、カスタムの購入またはリストアフローをトリガーしてください。
また、購入またはリストアの処理について AdaptyUI に通知するために、以下のコールバックを呼び出すことを忘れないでください。これは、ローダーの表示など、フローが正しく動作するために必要です:
| コールバック | 説明 |
|---|---|
| onStartPurchase() | 購入が開始されたことを AdaptyUI に通知するために呼び出すコールバックです。 |
| onFinishPurchase() | 購入が完了したことを AdaptyUI に通知するために呼び出すコールバックです。 |
| onStartRestore() | 復元が開始されたことを AdaptyUI に通知するために呼び出すコールバックです。 |
| onFinishRestore() | 復元が完了したことを AdaptyUI に通知するために呼び出すコールバックです。 |
フローは、コードの実行中も開いたままです。購入またはリストアが成功した後は、自分でフローを閉じてください。
-
画面を表示する前にリゾルバーを登録してください:
import com.adapty.kmp.AdaptyUI AdaptyUI.setObserverModeResolver(MyObserverModeResolver())リゾルバーが登録されていない場合、フロービューは購入をコードに渡す手段がないため、ユーザーが購入ボタンをタップしても何も起こりません。
-
通常どおりフロービューを作成して表示します: フローをフェッチしてビューを作成し、表示します。追加のパラメーターは不要です — リゾルバーが登録されると、Adapty がレンダリングするすべてのフローが、そのリゾルバーを通じて購入と復元を処理します。
必ずトランザクションを報告してペイウォールと紐付けてください。これを行わないと、Adapty はトランザクションを認識できず、購入元のペイウォールを特定できません。