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

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

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

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

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

フローイベントリスナーを設定する

フローのアクションを処理するには、IAdaptyFlowsEventsListener インターフェースを実装し、Adapty.SetFlowsEventsListener() で登録します。これはアプリのライフサイクルの早い段階、通常はメインシーンまたはアプリの初期化時に行う必要があります。

using AdaptySDK;

public class FlowsListener : MonoBehaviour, IAdaptyFlowsEventsListener
{
    void Start()
    {
        Adapty.SetFlowsEventsListener(this);
    }

    // implement all IAdaptyFlowsEventsListener methods here
}

IAdaptyFlowsEventsListener は C# インターフェースなので、そのすべてのメソッドを実装してください。完全な一覧はフロー & ペイウォールイベントの処理をご参照ください。以下の例では FlowViewDidPerformAction メソッドのみを示します。

すべてのボタン操作は、FlowViewDidPerformAction(view, action) コールバックに AdaptyUIUserAction オブジェクトとして届きます。このオブジェクトは CloseSystemBackOpenUrl、または Custom のいずれかの Type と、オプションの Value(URL またはカスタムアクション ID)を持ちます。

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

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

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

閉じられたビューは破棄され、再表示できません。フローをもう一度表示するには、CreateFlowView を再度呼び出してください。

public void FlowViewDidPerformAction(
    AdaptyUIFlowView view,
    AdaptyUIUserAction action
) {
    switch (action.Type) {
        case AdaptyUIUserActionType.Close:
            view.Dismiss(null);
            break;
        default:
            // handle other events
            break;
    }
}

Androidシステムの戻るボタンを処理する

Androidシステムの戻るボタンを押す(または戻るジェスチャーを使う)と、SystemBack タイプのアクションが発行されます。これ自体ではフローは閉じられません。フローは開いたままで、ユーザーは Close ボタンやビルダーの on_device_back アクションなど、あなたが定義したパスを通じてフローを離れます。システムの戻るボタンでフローを閉じたい場合は、アクションを自分で処理してください。

public void FlowViewDidPerformAction(
    AdaptyUIFlowView view,
    AdaptyUIUserAction action
) {
    switch (action.Type) {
        case AdaptyUIUserActionType.Close:
        case AdaptyUIUserActionType.SystemBack:
            view.Dismiss(null);
            break;
        default:
            // handle other events
            break;
    }
}

フローおよびペイウォールからURLを開く

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

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

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

AdaptyUI.OpenUrl メソッドを使用して、ビルダーで設定された外部ブラウザまたはアプリ内ブラウザのオプション(action.OpenIn)に従い、URL をネイティブに開きます:

public void FlowViewDidPerformAction(
    AdaptyUIFlowView view,
    AdaptyUIUserAction action
) {
    switch (action.Type) {
        case AdaptyUIUserActionType.OpenUrl:
            var urlString = action.Value;
            if (!string.IsNullOrWhiteSpace(urlString)) {
                AdaptyUI.OpenUrl(
                    urlString,
                    action.OpenIn ?? AdaptyWebPresentation.ExternalBrowser,
                    (error) => {
                        // handle the error
                    }
                );
            }
            break;
        default:
            // handle other events
            break;
    }
}

アプリへのログイン

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

  1. ビルダーでボタンを追加し、ID login を持つ Custom アクションを割り当てます。
  2. アプリコードで、ユーザーを識別する login カスタムアクションのハンドラーを実装します。
public void FlowViewDidPerformAction(
    AdaptyUIFlowView view,
    AdaptyUIUserAction action
) {
    switch (action.Type) {
        case AdaptyUIUserActionType.Custom:
            if (action.Value == "login") {
                // Navigate to login scene
                SceneManager.LoadScene("LoginScene");
            }
            break;
        default:
            // handle other events
            break;
    }
}

カスタムアクションを処理する

ボタンを追加して任意のアクションを処理するには:

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

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

public void FlowViewDidPerformAction(
    AdaptyUIFlowView view,
    AdaptyUIUserAction action
) {
    switch (action.Type) {
        case AdaptyUIUserActionType.Custom:
            if (action.Value == "openNewFlow") {
                // Display another flow or paywall
                ShowAlternativeFlow();
            }
            break;
        default:
            // handle other events
            break;
    }
}

private void ShowAlternativeFlow() {
    // Implement your logic to show an alternative flow
}

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

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

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

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

ペイウォールを閉じる

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

  1. ペイウォールビルダーでボタンを追加し、Close アクションを割り当てます。
  2. アプリのコードに、ペイウォールを閉じる close アクションのハンドラーを実装します。
public void PaywallViewDidPerformAction(
    AdaptyUIPaywallView view, 
    AdaptyUIUserAction action
) {
    switch (action.Type) {
        case AdaptyUIUserActionType.Close:
            view.Dismiss(null);
            break;
        default:
            // handle other events
            break;
    }
}

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

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

ペイウォールからリンクを開くボタン(Terms of usePrivacy policy など)を追加するには、次の手順に従います。

  1. ペイウォールビルダーでボタンを追加し、Open URL アクションを割り当て、開きたいURLを入力します。
  2. アプリのコードに、受け取ったURLをブラウザで開く openUrl アクションのハンドラーを実装します。
public void PaywallViewDidPerformAction(
    AdaptyUIPaywallView view,
    AdaptyUIUserAction action
) {
    switch (action.Type) {
        case AdaptyUIUserActionType.OpenUrl:
            var urlString = action.Value;
            if(!string.IsNullOrWhiteSpace(urlString)) {
                Application.OpenURL(urlString);
            }
            break;
        default:
            // handle other events
            break;
    }
}

アプリへのログイン

ユーザーをアプリにログインさせるボタンを追加するには、次の手順に従います。

  1. ペイウォールビルダーでボタンを追加し、ID loginCustom アクションを割り当てます。
  2. アプリのコードに、ユーザーを識別する login カスタムアクションのハンドラーを実装します。
public void PaywallViewDidPerformAction(
    AdaptyUIPaywallView view,
    AdaptyUIUserAction action
) {
    switch (action.Type) {
        case AdaptyUIUserActionType.Custom:
            if (action.Value == "login") {
                // Navigate to login scene
                SceneManager.LoadScene("LoginScene");
            }
            break;
        default:
            // handle other events
            break;
    }
}

カスタムアクションを処理する

その他のアクションを処理するボタンを追加するには、次の手順に従います。

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

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

public void PaywallViewDidPerformAction(
    AdaptyUIPaywallView view,
    AdaptyUIUserAction action
) {
    switch (action.Type) {
        case AdaptyUIUserActionType.Custom:
            if (action.Value == "openNewPaywall") {
                // Display another paywall
                ShowAlternativePaywall();
            }
            break;
        default:
            // handle other events
            break;
    }
}

private void ShowAlternativePaywall() {
    // Implement your logic to show alternative paywall
}