Unity SDKでボタンアクションに応答する
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
}