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

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

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

Это гайд по обработке пользовательских и стандартных действий в коде.

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

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

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

В Capacitor SDK действие close по умолчанию закрывает пейвол. Однако при необходимости вы можете переопределить это поведение в коде. Например, закрытие одного пейвола может инициировать открытие другого.


const view = await createPaywallView(paywall);

const unsubscribe = view.setEventHandlers({
  onCloseButtonPress() {
    console.log('User closed paywall');
    return true; // Allow the paywall to close
  }
});

Открытие URL из пейвола

Если вы хотите добавить группу ссылок (например, пользовательское соглашение и восстановление покупок), добавьте элемент Link в Paywall Builder и обработайте его так же, как кнопки с действием Open URL.

Чтобы добавить кнопку, открывающую ссылку из пейвола (например, Terms of use или Privacy policy):

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

В Capacitor SDK действие window.open по умолчанию открывает URL. Однако при необходимости вы можете переопределить это поведение в коде.


const view = await createPaywallView(paywall);

const unsubscribe = view.setEventHandlers({
  onUrlPress(url) {
    window.open(url, '_blank');
    return false; // Don't close the paywall
  },
});

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

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

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

const view = await createPaywallView(paywall);

const unsubscribe = view.setEventHandlers({
  onCustomAction(actionId) {
    if (actionId === 'login') {
      // Navigate to login screen
      console.log('User requested login');
    }
  }
});

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

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

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

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

const unsubscribe = view.setEventHandlers({
  onCustomAction(actionId) {
    if (actionId === 'openNewPaywall') {
      // Display another paywall
      console.log('User requested new paywall');
    }
  },
});