Android SDKでボタンアクションに対応する

Adaptyのペイウォールビルダーを使ってペイウォールを構築する場合、ボタンを適切に設定することが重要です。

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

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

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

ペイウォールを閉じる

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

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

Android SDKでは、close アクションはデフォルトでペイウォールを閉じる動作をします。ただし、必要に応じてコードでこの動作を上書きすることもできます。たとえば、1つのペイウォールを閉じると別のペイウォールが開くようにする場合などです。

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
           }
       }
   }
}