Flutter SDKでボタンアクションに応答する

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

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

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

ビューを閉じる操作とURLを開く操作は、 デフォルトの flowViewDidPerformAction 実装によって自動的に処理され、購入と復元はSDK自体が処理します。ログインや別のフローを開くといった他のボタンアクションについては、アプリコード側で適切なレスポンスを実装する必要があります。なお、購入と復元の完了に対する応答は、必須のオブザーバーコールバックで行います。詳細はフロー&ペイウォールイベントの処理を参照してください。

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

フローまたはペイウォールを閉じるボタンを追加するには、ビルダーでボタンを追加し、Close アクションを割り当てます。コードは不要です。デフォルトの flowViewDidPerformAction 実装は、CloseAction を受け取るとビューを閉じます。

Android の Back ボタンは、デフォルトではビューを閉じなくなりました。flowViewDidPerformActionAndroidSystemBackAction として渡されるので、バックボタンでフローやペイウォールを閉じたい場合は自分で処理してください。

カスタム動作が必要な場合は flowViewDidPerformAction をオーバーライドしてください。たとえば、v3 のように Android のシステムバックボタンでもビューを閉じる場合は次のようにします:

void flowViewDidPerformAction(AdaptyUIFlowView view, AdaptyUIAction action) {
    switch (action) {
      case const CloseAction():
      case const AndroidSystemBackAction():
        view.dismiss();
        break;
      case OpenUrlAction(:final url, :final openIn):
        AdaptyUI().openUrl(url, openIn: openIn);
        break;
      default:
        break;
    }
}

flowViewDidPerformAction をオーバーライドすると、デフォルトの実装が完全に置き換えられます。デフォルトの閉じる動作とURL開く動作を維持したい場合は、CloseActionOpenUrlAction のケースをそのまま残してください。

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

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

リンクを開くボタン(Terms of usePrivacy policy など)を追加するには、ビルダーでボタンを追加し、Open URL アクションを割り当て、開きたいURLを入力します。 コードは不要です。デフォルトの flowViewDidPerformAction 実装は、AdaptyUI().openUrl を使ってURLをネイティブに開き、ダッシュボードのアプリ内ブラウザ/外部ブラウザの設定に従います。

ほとんどのケースではデフォルトの動作で十分です。自分でURLを開きたい場合は、ハンドラーをオーバーライドしてください。

void flowViewDidPerformAction(AdaptyUIFlowView view, AdaptyUIAction action) {
    switch (action) {
      case const CloseAction():
        view.dismiss();
        break;
      case OpenUrlAction(url: final url):
        // Open the URL in whatever way fits your app
        break;
      default:
        break;
    }
}

アプリへのログイン

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

  1. ビルダーでボタンを追加し、Login アクションを割り当てます。
  2. アプリのコードに、ユーザーを識別する login アクションのハンドラーを実装します。
void flowViewDidPerformAction(AdaptyUIFlowView view, AdaptyUIAction action) {
    switch (action) {
      case CustomAction(action: 'login'):
        // Navigate to your login screen in whatever way fits your app
        break;
      default:
        break;
    }
}

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

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

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

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

void flowViewDidPerformAction(AdaptyUIFlowView view, AdaptyUIAction action) {
   switch (action) {
     case CustomAction(action: 'openNewPaywall'):
       // Display another flow or paywall
       break;
     default:
       break;
   }
}

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

  1. ペイウォールビルダーでボタンを追加し、既存のアクションを割り当てるか、カスタムアクション ID を作成します。
  2. 割り当てた各アクションを処理するコードをアプリに記述します。 このガイドでは、カスタムアクションおよびあらかじめ用意されたアクションをコード内で処理する方法を説明します。

購入と復元のみが自動的に処理されます。 ペイウォールを閉じる、リンクを開くなど、その他のボタンアクションはすべてアプリのコード内で適切な処理を実装する必要があります。

ペイウォールを閉じる

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

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

Flutter SDK では、CloseAction および AndroidSystemBackAction アクションはデフォルトでペイウォールを閉じる動作をします。ただし、必要に応じてコード内でこの動作をオーバーライドできます。たとえば、あるペイウォールを閉じると別のペイウォールが開くようにすることも可能です。

void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
    switch (action) {
      case const CloseAction():
      case const AndroidSystemBackAction():
        view.dismiss();
        break;
      default:
        break;
    }
}

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

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

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

  1. ペイウォールビルダーでボタンを追加し、Open URL アクションを割り当て、開きたいURLを入力します。
  2. アプリのコードで、受け取ったURLをブラウザで開く openUrl アクションのハンドラーを実装します。
// You have to install url_launcher plugin in order to handle urls:
// https://pub.dev/packages/url_launcher

void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
    switch (action) {
      case OpenUrlAction(url: final url):
        final Uri uri = Uri.parse(url);
        launchUrl(uri, mode: LaunchMode.inAppBrowserView);
        break;
      default:
        break;
    }
}

アプリへのログイン

ユーザーがアプリにログインするためのボタンを追加するには:

  1. ペイウォールビルダーでボタンを追加し、Login アクションを割り当てます。
  2. アプリのコードで、ユーザーを識別する login アクションのハンドラーを実装します。
void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
    switch (action) {
      case CustomAction(action: 'login'):
        // Navigate to your login screen in whatever way fits your app
        break;
      default:
        break;
    }
}

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

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

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

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

void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
   switch (action) {
     case CustomAction(action: 'openNewPaywall'):
       // 別のペイウォールを表示する
       break;
     default:
       break;
   }
}