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

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

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

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

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

Вам понадобится:

Реализация

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

  1. Реализуйте интерфейс IAdaptyUIObserverModeResolver:

    using System;
    using AdaptySDK;
    
    public class MyObserverModeResolver : IAdaptyUIObserverModeResolver
    {
        public void FlowViewDidInitiatePurchase(
            AdaptyUIFlowView view,
            AdaptyPaywallProduct product,
            Action onStartPurchase,
            Action onFinishPurchase
        )
        {
            onStartPurchase(); // the view shows its loading indicator
            // make the purchase with your own code,
            // then report the transaction to Adapty and call:
            onFinishPurchase(); // the view hides the loading indicator
        }
    
        public void FlowViewDidInitiateRestore(
            AdaptyUIFlowView view,
            Action onStartRestore,
            Action onFinishRestore
        )
        {
            onStartRestore();
            // restore purchases with your own code, then:
            onFinishRestore();
        }
    }

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

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

CallbackDescription
onStartPurchase()Коллбэк нужно вызвать, чтобы уведомить AdaptyUI о начале покупки.
onFinishPurchase()Коллбэк нужно вызвать, чтобы уведомить AdaptyUI о завершении покупки.
onStartRestore()Коллбэк нужно вызвать, чтобы уведомить AdaptyUI о начале восстановления.
onFinishRestore()Коллбэк нужно вызвать, чтобы уведомить AdaptyUI о завершении восстановления.

Флоу остаётся открытым, пока выполняется ваш код — закройте его самостоятельно после успешной покупки или восстановления.

  1. Зарегистрируйте resolver до показа любого экрана:

    Adapty.SetObserverModeResolver(new MyObserverModeResolver());

    Без зарегистрированного resolver флоу не может передать покупку в ваш код, и ничего не происходит при нажатии пользователем кнопки покупки.

  2. Создайте и отобразите флоу как обычно: получите флоу и создайте его представление, затем отобразите его. Дополнительные параметры не нужны — как только резолвер зарегистрирован, все покупки и восстановления в Adapty-флоу проходят через него.

Warning

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