フローアクションへの応答 - Unity
Adapty フロービルダーまたはペイウォールビルダーを使ってフローやペイウォールを構築する場合、ボタンを適切に設定することが重要です。
- ビルダーでボタンを追加し、既存のアクションを割り当てるか、カスタムアクション ID を作成します。
- 割り当てたアクションを処理するコードをアプリに記述します。
このガイドでは、カスタムアクションおよび既存のアクションをコードで処理する方法を説明します。
購入と復元のみが自動的に処理されます。 フローを閉じる、リンクを開くなど、その他のボタンアクションはすべて、アプリのコードで適切なレスポンス実装が必要です。
フローイベントリスナーを設定する
フローのアクションを処理するには、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 オブジェクトとして届きます。このオブジェクトは Close、SystemBack、OpenUrl、または Custom のいずれかの Type と、オプションの Value(URL またはカスタムアクション ID)を持ちます。
フローとペイウォールを閉じる
フローまたはペイウォールを閉じるボタンを追加するには:
- ビルダーでボタンを追加し、Close アクションを割り当てます。
- アプリのコード内で、フローを閉じる
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 use や Privacy policy など)を追加するには:
- ビルダーでボタンを追加し、Open URL アクションを割り当てて、開きたいURLを入力します。
- アプリのコードに、受け取った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;
}
}アプリへのログイン
アプリにユーザーをログインさせるボタンを追加するには:
- ビルダーでボタンを追加し、ID
loginを持つ Custom アクションを割り当てます。 - アプリコードで、ユーザーを識別する
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;
}
}カスタムアクションを処理する
ボタンを追加して任意のアクションを処理するには:
- ビルダーでボタンを追加し、Custom アクションを割り当て、IDを設定します。
- アプリのコードで、作成したアクション 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 ペイウォールビルダーを使用してペイウォールを構築する場合、ボタンを正しく設定することが重要です:
- ペイウォールビルダーにボタンを追加し、既存のアクションを割り当てるか、カスタムアクション ID を作成します。
- 割り当てた各アクションを処理するコードをアプリに記述します。
このガイドでは、カスタムアクションと既存のアクションをコードで処理する方法を説明します。
購入と復元のみが自動的に処理されます。 ペイウォールを閉じる、リンクを開くなど、その他のボタンアクションはすべて、アプリのコードで適切な処理を実装する必要があります。
ペイウォールを閉じる
ペイウォールを閉じるボタンを追加するには、次の手順に従います。
- ペイウォールビルダーでボタンを追加し、Close アクションを割り当てます。
- アプリのコードに、ペイウォールを閉じる
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 use や Privacy policy など)を追加するには、次の手順に従います。
- ペイウォールビルダーでボタンを追加し、Open URL アクションを割り当て、開きたいURLを入力します。
- アプリのコードに、受け取った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;
}
}アプリへのログイン
ユーザーをアプリにログインさせるボタンを追加するには、次の手順に従います。
- ペイウォールビルダーでボタンを追加し、ID
loginの Custom アクションを割り当てます。 - アプリのコードに、ユーザーを識別する
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;
}
}カスタムアクションを処理する
その他のアクションを処理するボタンを追加するには、次の手順に従います。
- ペイウォールビルダーでボタンを追加し、Custom アクションを割り当て、IDを設定します。
- アプリのコードに、作成したアクション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
}