Flutter SDKでボタンアクションに応答する
ペイウォールビルダーでペイウォールを作成する場合、ボタンを適切に設定することが重要です。
- ペイウォールビルダーでボタンを追加し、既存のアクションを割り当てるか、カスタムアクションIDを作成します。
- 割り当てた各アクションを処理するコードをアプリに実装します。
このガイドでは、カスタムアクションと既存アクションをコードで処理する方法を説明します。
購入と復元のみが自動的に処理されます。 ペイウォールを閉じたりリンクを開いたりする操作など、その他のボタンアクションはすべて、アプリのコードに適切な処理を実装する必要があります。
ペイウォールを閉じる
ペイウォールを閉じるボタンを追加するには:
- ペイウォールビルダーでボタンを追加し、Close アクションを割り当てます。
- アプリのコードに、
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 use や Privacy policy など)を追加するには:
- ペイウォールビルダーでボタンを追加し、Open URL アクションを割り当てて、開きたいURLを入力します。
- アプリのコードに、受け取ったURLをブラウザで開く
openUrlアクションのハンドラーを実装します。
// You have to install url_launcher plugin in order to handle urls:
// https://pub.dev/packages/url_launcher
void paywallViewDidPerformAction(AdaptyUIView view, AdaptyUIAction action) {
switch (action) {
case OpenUrlAction(url: final url):
final Uri uri = Uri.parse(url);
launchUrl(uri, mode: LaunchMode.inAppBrowserView);
break;
default:
break;
}
}
アプリへのログイン
ユーザーをアプリにログインさせるボタンを追加するには:
- ペイウォールビルダーでボタンを追加し、Login アクションを割り当てます。
- アプリのコードに、ユーザーを識別する
loginアクションのハンドラーを実装します。
void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
switch (action) {
case CustomAction(action: 'login'):
// Handle login action
Navigator.of(context).push(MaterialPageRoute(builder: (context) => LoginScreen()));
break;
default:
break;
}
}
カスタムアクションを処理する
その他のアクションを処理するボタンを追加するには:
- ペイウォールビルダーでボタンを追加し、Custom アクションを割り当てて、IDを設定します。
- アプリのコードに、作成したアクションIDのハンドラーを実装します。
たとえば、別のサブスクリプションプランや買い切り購入がある場合、別のペイウォールを表示するボタンを追加できます。
void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
switch (action) {
case CustomAction(action: 'openNewPaywall'):
// Display another paywall
break;
default:
break;
}
}