Реакция на действия кнопок в iOS SDK

Если вы создаёте пейволы с помощью Paywall Builder, важно правильно настроить кнопки:

  1. Добавьте кнопку в Paywall Builder и назначьте ей одно из готовых действий или создайте собственный идентификатор действия.
  2. Напишите код в приложении для обработки каждого назначенного действия.

В этом гайде показано, как обрабатывать пользовательские и готовые действия в коде.

Покупки, восстановление, закрытие пейвола и открытие URL обрабатываются автоматически. Все остальные действия кнопок требуют явной реализации в коде приложения.

Закрытие пейволов

Чтобы добавить кнопку для закрытия пейвола:

  1. В Paywall Builder добавьте кнопку и назначьте ей действие Close.
  2. В коде приложения реализуйте обработчик действия 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):

  1. В Paywall Builder добавьте кнопку, назначьте ей действие Open URL и укажите нужный URL.
  2. В коде приложения реализуйте обработчик действия 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
    }
}

Вход в приложение

Чтобы добавить кнопку для входа пользователей в приложение:

  1. В Paywall Builder добавьте кнопку и назначьте ей действие Login.
  2. В коде приложения реализуйте обработчик действия 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)
   }
}

Обработка пользовательских действий

Чтобы добавить кнопку для обработки произвольных действий:

  1. В Paywall Builder добавьте кнопку, назначьте ей действие Custom и задайте идентификатор.
  2. В коде приложения реализуйте обработчик для созданного идентификатора действия.

Например, если у вас есть дополнительный набор предложений подписки или разовых покупок, можно добавить кнопку, которая откроет другой пейвол:

func paywallController(_ controller: AdaptyPaywallController,
                      didPerform action: AdaptyUI.Action) {
   switch action {
       case let .custom(id):
           if id == "openNewPaywall" {
              // Display another paywall
              }
           }
           break
   }
}