フローアクションへの応答 - Android

Adapty フロービルダーまたはペイウォールビルダーを使ってフローやペイウォールを構築している場合、ボタンを適切に設定することが重要です:

  1. ビルダーでボタンを追加し、既存のアクションを割り当てるか、カスタムアクション ID を作成します。
  2. 割り当てた各アクションをアプリのコードで処理する処理を実装します。

このガイドでは、カスタムアクションと既存アクションをコードで処理する方法を説明します。

購入、復元、フロー/ペイウォールのクローズ、URL の開封のみ自動で処理されます。 その他すべてのボタンアクションは、アプリのコードで適切なレスポンス実装が必要です。

フローとペイウォールを閉じる

フローまたはペイウォールを閉じるボタンを追加するには、次の手順を行います。

  1. ビルダーでボタンを追加し、Close アクションを割り当てます。
  2. アプリのコードで close アクションのハンドラーを実装します。

Android SDK では、close アクションはデフォルトでフローまたはペイウォールを閉じる動作をします。ただし、必要に応じてコードでこの動作をオーバーライドできます。たとえば、あるフローを閉じたときに別のフローを開くといった処理が可能です。

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
    when (action) {
        AdaptyUI.Action.Close -> (context as? Activity)?.onBackPressed() // default behavior
    }
}

フローとペイウォールからURLを開く

リンクのグループ(利用規約や購入の復元など)を追加したい場合は、ビルダーで Link 要素を追加し、Open URL アクションを持つボタンと同じ方法で処理してください。

フローやペイウォールからリンクを開くボタン(例:Terms of usePrivacy policy)を追加するには:

  1. ビルダーでボタンを追加し、Open URL アクションを割り当てて、開きたいURLを入力します。
  2. アプリのコードで、受け取ったURLをブラウザで開く openUrl アクションのハンドラーを実装します。

Android SDKでは、openUrlアクションはデフォルトでURLを開きます。ただし、必要に応じてコード内でこの動作をオーバーライドできます。

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {    
       is AdaptyUI.Action.OpenUrl -> {
           val intent = Intent(Intent.ACTION_VIEW, Uri.parse(action.url)) // default behavior
           context.startActivity(intent)
       }
   }
}

カスタムアクションの処理

ボタンを追加して任意のアクションを処理するには、次の手順に従います:

  1. ビルダーでボタンを追加し、Custom アクションを割り当て、IDを設定します。
  2. アプリのコードで、作成したアクションIDのハンドラーを実装します。

たとえば、別のサブスクリプションオファーや買い切り購入がある場合、別のフローやペイウォールを表示するボタンを追加できます:

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {
       is AdaptyUI.Action.Custom -> {
           if (action.customId == "openNewPaywall") {
               // Display another flow or paywall
           }
       }
   }
}

ペイウォールビルダーを使ってペイウォールを作成する場合、ボタンを適切に設定することが重要です:

  1. ペイウォールビルダーでボタンを追加し、既存のアクションを割り当てるか、カスタムアクションIDを作成します。
  2. 割り当てた各アクションを処理するコードをアプリに記述します。

このガイドでは、カスタムアクションおよび既存アクションをコードで処理する方法を説明します。

購入、復元、ペイウォールのクローズ、URLの開封は自動的に処理されます。 それ以外のすべてのボタンアクションは、アプリのコードで適切な処理を実装する必要があります。

ペイウォールを閉じる

ペイウォールを閉じるボタンを追加するには:

  1. ペイウォールビルダーでボタンを追加し、Close アクションを割り当てます。
  2. アプリのコードで、ペイウォールを閉じる close アクションのハンドラーを実装します。

Android SDK では、close アクションはデフォルトでペイウォールを閉じる動作をします。ただし、必要に応じてコード内でこの動作をオーバーライドできます。たとえば、あるペイウォールを閉じたときに別のペイウォールを開くといった処理が可能です。

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
    when (action) {
        AdaptyUI.Action.Close -> (context as? Activity)?.onBackPressed() // default behavior
    }
}

ペイウォールからURLを開く

リンクのグループ(利用規約や購入の復元など)を追加したい場合は、ペイウォールビルダーで Link 要素を追加し、Open URL アクションが設定されたボタンと同じ方法で処理してください。

ペイウォールにリンクを開くボタン(Terms of usePrivacy policy など)を追加するには:

  1. ペイウォールビルダーでボタンを追加し、Open URL アクションを割り当てて、開きたいURLを入力します。
  2. アプリのコードに、受け取ったURLをブラウザで開く openUrl アクションのハンドラーを実装します。

Android SDK では、openUrl アクションはデフォルトで URL を開く動作をトリガーします。ただし、必要に応じてコード内でこの動作をオーバーライドできます。

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {    
       is AdaptyUI.Action.OpenUrl -> {
           val intent = Intent(Intent.ACTION_VIEW, Uri.parse(action.url)) // default behavior
           context.startActivity(intent)
       }
   }
}

アプリへのログイン

ユーザーをアプリにログインさせるボタンを追加するには:

  1. ペイウォールビルダーでボタンを追加し、Login アクションを割り当てます。
  2. アプリのコード内で、ユーザーを識別する login アクションのハンドラーを実装します。
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {
       AdaptyUI.Action.Login -> {
           val intent = Intent(context, LoginActivity::class.java)
           context.startActivity(intent)
       }
   }
}

カスタムアクションの処理

ほかのアクションを処理するボタンを追加するには:

  1. ペイウォールビルダーでボタンを追加し、Custom アクションを割り当て、ID を設定します。
  2. アプリのコードで、作成したアクション ID に対応するハンドラーを実装します。

たとえば、別のサブスクリプションオファーや買い切り購入がある場合、別のペイウォールを表示するボタンを追加できます:

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {
       is AdaptyUI.Action.Custom -> {
           if (action.customId == "openNewPaywall") {
               // Display another paywall
           }
       }
   }
}