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

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

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

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

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

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

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

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

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

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

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

  1. В Paywall Builder добавьте кнопку и назначьте ей действие Login.
  2. В коде приложения реализуйте обработчик действия login, который идентифицирует пользователя.
override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {
       AdaptyUI.Action.Login -> {
           val intent = Intent(context, LoginActivity::class.java)
           context.startActivity(intent)
       }
   }
}

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

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

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

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

override fun onActionPerformed(action: AdaptyUI.Action, context: Context) {
   when (action) {
       is AdaptyUI.Action.Custom -> {
           if (action.customId == "openNewPaywall") {
               // Display another paywall
           }
       }
   }
}