Отображение флоу в режиме Observer — Unity
Если вы используете режим Observer, логика покупок полностью на вашей стороне. При этом отображение UI пейвола можно делегировать Flow & Paywall Builder.
Создайте экран в конструкторе — SDK Adapty отрисует его нативно. Обновляйте текст, макет и цены в любой момент, без выпуска новой версии приложения.
В этом гайде показано, как отобразить флоу и обработать колбэки покупок. Если Adapty выполняет покупки за вас, смотрите Отображение флоу и пейволов.
Прежде чем начать
Вам понадобится:
- Adapty Unity SDK 4.1 или выше: Более ранние версии не поддерживают рендеринг флоу. Для миграции существующего приложения см. руководство по миграции.
SetObserverMode(true)вызван на конфигурационном билдере: См. руководство по установке Unity SDK.- Первичная интеграция со стором: Настройте Adapty с App Store и с Google Play.
- Опубликованный флоу с продуктами: Создайте его в Flow & Paywall Builder и привяжите к нему продукты.
- Плейсмент для флоу: Создайте плейсмент и назначьте на него ваш флоу.
- Флоу, загруженный в приложении: Получите флоу и его конфигурацию перед отображением.
Реализация
В режиме Observer SDK не выполняет покупки за вас. Когда пользователь нажимает кнопку покупки или восстановления во флоу, отрендеренном Adapty, SDK вызывает ваш IAdaptyUIObserverModeResolver — выполните покупку или восстановление с помощью собственного кода там.
-
Реализуйте интерфейс
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 о процессе покупки или восстановления. Это необходимо для корректного поведения флоу — например, для отображения загрузчика:
| Callback | Description |
|---|---|
| onStartPurchase() | Коллбэк нужно вызвать, чтобы уведомить AdaptyUI о начале покупки. |
| onFinishPurchase() | Коллбэк нужно вызвать, чтобы уведомить AdaptyUI о завершении покупки. |
| onStartRestore() | Коллбэк нужно вызвать, чтобы уведомить AdaptyUI о начале восстановления. |
| onFinishRestore() | Коллбэк нужно вызвать, чтобы уведомить AdaptyUI о завершении восстановления. |
Флоу остаётся открытым, пока выполняется ваш код — закройте его самостоятельно после успешной покупки или восстановления.
-
Зарегистрируйте resolver до показа любого экрана:
Adapty.SetObserverModeResolver(new MyObserverModeResolver());Без зарегистрированного resolver флоу не может передать покупку в ваш код, и ничего не происходит при нажатии пользователем кнопки покупки.
-
Создайте и отобразите флоу как обычно: получите флоу и создайте его представление, затем отобразите его. Дополнительные параметры не нужны — как только резолвер зарегистрирован, все покупки и восстановления в Adapty-флоу проходят через него.
Не забудьте сообщить о транзакции и связать её с пейволом. Иначе Adapty не распознает транзакцию и не определит пейвол-источник покупки.