Обработка действий флоу - Android
Если вы создаёте флоу или пейволы с помощью Adapty Flow Builder или Paywall Builder, важно правильно настроить кнопки:
- Добавьте кнопку в билдере и назначьте ей существующее действие или создайте собственный идентификатор действия.
- Напишите код в приложении для обработки каждого назначенного действия.
В этом гайде показано, как обрабатывать пользовательские и существующие действия в коде.
Только покупки, восстановление, закрытие флоу/пейвола и открытие URL обрабатываются автоматически. Все остальные действия кнопок требуют реализации обработчика в коде приложения.
Закрытие флоу и пейволов
Чтобы добавить кнопку для закрытия флоу или пейвола:
- В билдере добавьте кнопку и назначьте ей действие Close.
- В коде приложения реализуйте обработчик действия
close.
В Android SDK действие close по умолчанию закрывает флоу или пейвол. При необходимости это поведение можно переопределить в коде. Например, закрытие одного флоу может запускать открытие другого.
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
when (action) {
AdaptyUI.Action.Close -> (context as? Activity)?.onBackPressed() // default behavior
}
}Открытие URL из флоу и пейволов
Если нужно добавить группу ссылок (например, пользовательское соглашение и восстановление покупок), добавьте элемент Link в билдере и обрабатывайте его так же, как кнопки с действием Open URL.
Чтобы добавить кнопку, открывающую ссылку из вашего флоу или пейвола (например, Terms of use или Privacy policy):
- В билдере добавьте кнопку, назначьте ей действие Open URL и укажите нужный URL.
- В коде приложения реализуйте обработчик действия
openUrl, который открывает полученный URL в браузере.
В Android SDK действие openUrl по умолчанию открывает URL. Однако при необходимости вы можете переопределить это поведение в своём коде.
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
when (action) {
is AdaptyUI.Action.OpenUrl -> {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(action.url)) // default behavior
context.startActivity(intent)
}
}
}Обработка пользовательских действий
Чтобы добавить кнопку с произвольным действием:
- В конструкторе добавьте кнопку, назначьте ей действие Custom и укажите ID.
- В коде приложения реализуйте обработчик для созданного вами ID действия.
Например, если у вас есть другой набор предложений по подпискам или разовых покупок, можно добавить кнопку, которая откроет другой флоу или пейвол:
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
when (action) {
is AdaptyUI.Action.Custom -> {
if (action.customId == "openNewPaywall") {
// Display another flow or paywall
}
}
}
}Если вы создаёте пейволы с помощью Adapty Paywall Builder, важно правильно настроить кнопки:
- Добавьте кнопку в Paywall Builder и назначьте ей уже существующее действие или создайте собственный ID действия.
- Напишите в приложении код для обработки каждого назначенного действия.
В этом гайде показано, как обрабатывать пользовательские и встроенные действия в коде.
Покупки, восстановления, закрытие пейвола и открытие URL обрабатываются автоматически. Все остальные действия кнопок требуют явной реализации обработки в коде приложения.
Закрытие пейвола
Чтобы добавить кнопку закрытия пейвола:
- В Paywall Builder добавьте кнопку и назначьте ей действие Close.
- В коде приложения реализуйте обработчик действия
close, который закрывает пейвол.
В Android SDK действие close по умолчанию закрывает пейвол. Однако при необходимости вы можете переопределить это поведение в своём коде. Например, закрытие одного пейвола может инициировать открытие другого.
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
when (action) {
AdaptyUI.Action.Close -> (context as? Activity)?.onBackPressed() // default behavior
}
}Открытие URL из пейволов
Если вы хотите добавить группу ссылок (например, условия использования и восстановление покупки), добавьте элемент Link в Paywall Builder и обрабатывайте его так же, как кнопки с действием Open URL.
Чтобы добавить кнопку, открывающую ссылку из пейвола (например, Terms of use или Privacy policy):
- В Paywall Builder добавьте кнопку, назначьте ей действие Open URL и введите URL, который нужно открыть.
- В коде приложения реализуйте обработчик действия
openUrl, который открывает полученный URL в браузере.
В Android SDK действие openUrl по умолчанию открывает URL. Однако при необходимости вы можете переопределить это поведение в своём коде.
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
when (action) {
is AdaptyUI.Action.OpenUrl -> {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(action.url)) // default behavior
context.startActivity(intent)
}
}
}Вход в приложение
Чтобы добавить кнопку для входа пользователей в ваше приложение:
- В Paywall Builder добавьте кнопку и назначьте ей действие Login.
- В коде приложения реализуйте обработчик действия
login, который идентифицирует пользователя.
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
when (action) {
AdaptyUI.Action.Login -> {
val intent = Intent(context, LoginActivity::class.java)
context.startActivity(intent)
}
}
}Обработка пользовательских действий
Чтобы добавить кнопку с произвольным действием:
- В Paywall Builder добавьте кнопку, назначьте ей действие Custom и укажите идентификатор.
- В коде приложения реализуйте обработчик для созданного идентификатора действия.
Например, если у вас есть другой набор предложений по подпискам или разовых покупок, можно добавить кнопку, которая откроет другой пейвол:
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
when (action) {
is AdaptyUI.Action.Custom -> {
if (action.customId == "openNewPaywall") {
// Display another paywall
}
}
}
}