Обработка действий кнопок в Flutter SDK
Если вы создаёте пейволы с помощью Paywall Builder, важно правильно настроить кнопки:
- Добавьте кнопку в Paywall Builder и назначьте ей одно из готовых действий или создайте собственный ID действия.
- Напишите в приложении код для обработки каждого назначенного действия.
В этом гайде показано, как обрабатывать в коде как встроенные, так и пользовательские действия.
Покупки и восстановления обрабатываются автоматически. Все остальные действия кнопок — закрытие пейволов, открытие ссылок и т. д. — требуют явной реализации в коде приложения.
Закрытие пейволов
Чтобы добавить кнопку, закрывающую пейвол:
- В Paywall Builder добавьте кнопку и назначьте ей действие 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 в Paywall Builder и обработайте его так же, как кнопки с действием Open URL.
Чтобы добавить кнопку, открывающую ссылку из пейвола (например, Terms of use или Privacy policy):
- В Paywall Builder добавьте кнопку, назначьте ей действие Open URL и укажите нужный URL.
- В коде приложения реализуйте обработчик действия
openUrl, который открывает полученный URL в браузере.
// 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;
}
}
Авторизация в приложении
Чтобы добавить кнопку, выполняющую вход пользователя в приложение:
- В Paywall Builder добавьте кнопку и назначьте ей действие 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;
}
}
Обработка пользовательских действий
Чтобы добавить кнопку для обработки любых других действий:
- В Paywall Builder добавьте кнопку, назначьте ей действие Custom и задайте ID.
- В коде приложения реализуйте обработчик для созданного вами ID действия.
Например, если у вас есть дополнительный набор предложений подписки или разовых покупок, можно добавить кнопку, которая будет открывать другой пейвол:
void paywallViewDidPerformAction(AdaptyUIPaywallView view, AdaptyUIAction action) {
switch (action) {
case CustomAction(action: 'openNewPaywall'):
// Display another paywall
break;
default:
break;
}
}