オブザーバーモードでフローを表示する - Kotlin Multiplatform

オブザーバーモードを使用する場合、購入ロジックはご自身で実装する必要があります。ただし、ペイウォールのUIはフロー & ペイウォールビルダーに委任できます。

ビルダーでスクリーンをデザインすれば、Adapty SDK がそれをネイティブでレンダリングします。コピー、レイアウト、価格はいつでも変更でき、アプリのリリースは不要です。

このガイドでは、フローを表示して購入コールバックを処理する方法を説明します。Adapty に購入処理を任せる場合は、フローとペイウォールの表示 を参照してください。

はじめる前に

以下が必要です:

実装

Observerモードでは、SDKは代わりに購入処理を行いません。Adaptyがレンダリングするフローで購入ボタンまたは復元ボタンをユーザーがタップすると、SDKはあなたのAdaptyUIObserverModeResolverを呼び出します。そこで自分のコードを使って購入または復元を行ってください。

  1. 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 に通知するために呼び出すコールバックです。

フローは、コードの実行中も開いたままです。購入またはリストアが成功した後は、自分でフローを閉じてください。

  1. 画面を表示する前にリゾルバーを登録してください:

    import com.adapty.kmp.AdaptyUI
    
    AdaptyUI.setObserverModeResolver(MyObserverModeResolver())

    リゾルバーが登録されていない場合、フロービューは購入をコードに渡す手段がないため、ユーザーが購入ボタンをタップしても何も起こりません。

  2. 通常どおりフロービューを作成して表示します: フローをフェッチしてビューを作成し表示します。追加のパラメーターは不要です — リゾルバーが登録されると、Adapty がレンダリングするすべてのフローが、そのリゾルバーを通じて購入と復元を処理します。

Warning

必ずトランザクションを報告してペイウォールと紐付けてください。これを行わないと、Adapty はトランザクションを認識できず、購入元のペイウォールを特定できません。