Реакция на действия кнопок в iOS SDK
Если вы создаёте пейволы с помощью Paywall Builder, важно правильно настроить кнопки:
- Добавьте кнопку в Paywall Builder и назначьте ей одно из готовых действий или создайте собственный идентификатор действия.
- Напишите код в приложении для обработки каждого назначенного действия.
В этом гайде показано, как обрабатывать пользовательские и готовые действия в коде.
Покупки, восстановление, закрытие пейвола и открытие URL обрабатываются автоматически. Все остальные действия кнопок требуют явной реализации в коде приложения.
Закрытие пейволов
Чтобы добавить кнопку для закрытия пейвола:
- В Paywall Builder добавьте кнопку и назначьте ей действие Close.
- В коде приложения реализуйте обработчик действия
close, который скрывает пейвол.
В iOS SDK действие close по умолчанию закрывает пейвол. При необходимости это поведение можно переопределить в коде. Например, закрытие одного пейвола может инициировать открытие другого.
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case .close:
controller.dismiss(animated: true) // default behavior
break
}
}
Открытие URL из пейвола
Если вы хотите добавить группу ссылок (например, условия использования и восстановление покупок), добавьте элемент Link в Paywall Builder и обработайте его так же, как кнопки с действием Open URL.
Чтобы добавить кнопку, открывающую ссылку из пейвола (например, Terms of use или Privacy policy):
- В Paywall Builder добавьте кнопку, назначьте ей действие Open URL и укажите нужный URL.
- В коде приложения реализуйте обработчик действия
openUrl, который открывает полученный URL в браузере.
В iOS SDK действие openUrl по умолчанию открывает URL. При необходимости это поведение можно переопределить в коде.
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case let .openURL(url):
UIApplication.shared.open(url, options: [:]) // default behavior
break
}
}
Вход в приложение
Чтобы добавить кнопку для входа пользователей в приложение:
- В Paywall Builder добавьте кнопку и назначьте ей действие Login.
- В коде приложения реализуйте обработчик действия
login, который идентифицирует пользователя.
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case .login:
// Show a login screen
let loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LoginViewController")
controller.present(loginVC, animated: true)
}
}
Обработка пользовательских действий
Чтобы добавить кнопку для обработки произвольных действий:
- В Paywall Builder добавьте кнопку, назначьте ей действие Custom и задайте идентификатор.
- В коде приложения реализуйте обработчик для созданного идентификатора действия.
Например, если у вас есть дополнительный набор предложений подписки или разовых покупок, можно добавить кнопку, которая откроет другой пейвол:
func paywallController(_ controller: AdaptyPaywallController,
didPerform action: AdaptyUI.Action) {
switch action {
case let .custom(id):
if id == "openNewPaywall" {
// Display another paywall
}
}
break
}
}