Отображение флоу в режиме Observer в Flutter SDK

Если вы используете режим Observer, вы сами отвечаете за логику покупок. При этом UI пейвола можно делегировать Flow & Paywall Builder.

Создайте экран в билдере, и SDK Adapty отрисует его нативно. Обновляйте тексты, макет и цены в любой момент — без выпуска нового релиза приложения.

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

Прежде чем начать

Вам потребуется:

Реализация

В режиме Observer SDK не совершает покупки за вас. Когда пользователь нажимает кнопку покупки или восстановления во флоу, отрендеренном Adapty, SDK вызывает ваш AdaptyUIObserverModeResolver — выполните покупку или восстановление с помощью вашего собственного кода там.

  1. Реализуйте AdaptyUIObserverModeResolver:

    class MyObserverModeResolver extends AdaptyUIObserverModeResolver {
      @override
      void observerModeDidInitiatePurchase(
        AdaptyUIFlowView view,
        AdaptyPaywallProduct product,
        void Function() onStartPurchase,
        void Function() onFinishPurchase,
      ) {
        onStartPurchase(); // the view shows its loading indicator
        // make the purchase with your own code, then:
        onFinishPurchase(); // the view hides the loading indicator
      }
    
      @override
      void observerModeDidInitiateRestore(
        AdaptyUIFlowView view,
        void Function() onStartRestore,
        void Function() onFinishRestore,
      ) {
        onStartRestore();
        // restore purchases with your own code, then:
        onFinishRestore();
      }
    }

Метод observerModeDidInitiatePurchase сообщает, что пользователь инициировал покупку, а observerModeDidInitiateRestore — что пользователь инициировал восстановление покупок. В ответ на эти события запускайте свой кастомный флоу покупки или восстановления.

Также не забудьте вызвать следующие коллбэки, чтобы уведомить AdaptyUI о процессе покупки или восстановления. Это необходимо для корректного поведения флоу — например, для отображения загрузчика:

CallbackОписание
onStartPurchase()Callback должен вызываться, чтобы уведомить AdaptyUI о начале покупки.
onFinishPurchase()Callback должен вызываться, чтобы уведомить AdaptyUI о завершении покупки.
onStartRestore()Callback должен вызываться, чтобы уведомить AdaptyUI о начале восстановления покупок.
onFinishRestore()Callback должен вызываться, чтобы уведомить AdaptyUI о завершении восстановления покупок.
  1. Зарегистрируйте резолвер до отображения любого экрана:

    AdaptyUI().setObserverModeResolver(MyObserverModeResolver());
  2. Создайте и отобразите флоу как обычно: получите флоу и создайте его вид, затем отобразите его. Дополнительные параметры не нужны — после регистрации резолвера все покупки и восстановления в любом флоу, отрисованном Adapty, будут проходить через него.

Warning

Не забудьте сообщить о транзакции и связать её с пейволом. В противном случае Adapty не распознает транзакцию и не определит исходный пейвол покупки.