Отображение флоу в режиме Observer в Flutter SDK
Если вы используете режим Observer, вы сами отвечаете за логику покупок. При этом UI пейвола можно делегировать Flow & Paywall Builder.
Создайте экран в билдере, и SDK Adapty отрисует его нативно. Обновляйте тексты, макет и цены в любой момент — без выпуска нового релиза приложения.
В этом гайде показано, как отобразить флоу и обработать колбэки покупок. Если Adapty выполняет покупки за вас, см. Отображение флоу и пейволов.
Прежде чем начать
Вам потребуется:
- Adapty Flutter SDK 4.0 или выше: Более ранние версии не поддерживают рендеринг флоу. Для миграции существующего приложения см. руководство по миграции.
observerModeустановлен вtrue: См. руководство по установке Flutter SDK.- Базовая интеграция со стором: Настройте Adapty с App Store и с Google Play.
- Опубликованный флоу с продуктами: Создайте его в Flow & Paywall Builder и назначьте ему продукты.
- Плейсмент для флоу: Создайте плейсмент и назначьте ему ваш флоу.
- Флоу, загруженный в приложении: Получите флоу и его конфигурацию перед отображением.
Реализация
В режиме Observer SDK не совершает покупки за вас. Когда пользователь нажимает кнопку покупки или восстановления во флоу, отрендеренном Adapty, SDK вызывает ваш AdaptyUIObserverModeResolver — выполните покупку или восстановление с помощью вашего собственного кода там.
-
Реализуйте
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 о завершении восстановления покупок. |
-
Зарегистрируйте резолвер до отображения любого экрана:
AdaptyUI().setObserverModeResolver(MyObserverModeResolver()); -
Создайте и отобразите флоу как обычно: получите флоу и создайте его вид, затем отобразите его. Дополнительные параметры не нужны — после регистрации резолвера все покупки и восстановления в любом флоу, отрисованном Adapty, будут проходить через него.
Не забудьте сообщить о транзакции и связать её с пейволом. В противном случае Adapty не распознает транзакцию и не определит исходный пейвол покупки.