Отображение флоу и пейволов - Android

Display flows and paywalls
Флоу Создаются в Flow Builder — рендерятся нативно на устройстве, без WebView
Пейволы Paywall Builder Весь существующий контент Paywall Builder

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

Этот гайд охватывает флоу и пейволы, построенные в новом Paywall Builder и рендеримые Adapty. Для Remote Config пейволов и режима Observer процесс отличается.

Чтобы получить объект flowConfiguration, используемый ниже, смотрите Получение флоу и пейволов.

Параметры запроса:

ПараметрНаличиеОписание
flowConfigurationобязательныйПередайте объект AdaptyUI.FlowConfiguration с визуальными настройками флоу. Используйте метод AdaptyUI.getFlowConfiguration(flow) для его загрузки. Подробнее см. в разделе Получение конфигурации представления.
productsнеобязательныйПередайте массив AdaptyPaywallProduct, чтобы оптимизировать время отображения продуктов на экране. Если передать null, AdaptyUI автоматически загрузит нужные продукты.
eventListenerнеобязательныйПередайте AdaptyFlowEventListener для отслеживания событий флоу. Для удобства рекомендуется использовать AdaptyFlowDefaultEventListener. Подробнее см. в разделе Обработка событий флоу и пейвола.
insetsнеобязательный

Insets — это отступы вокруг флоу, которые не дают интерактивным элементам скрываться за системными панелями.

По умолчанию: Unspecified — Adapty автоматически подберёт отступы, что отлично работает для edge-to-edge флоу.

Если ваш флоу не является edge-to-edge, возможно, потребуется задать пользовательские отступы. Как это сделать — читайте в разделе Изменение отступов флоу ниже.

customAssetsнеобязательныйПередайте объект AdaptyCustomAssets, чтобы заменить изображения и видео во флоу или пейволе во время выполнения. Подробнее см. в разделе Настройка ресурсов.
tagResolverнеобязательныйИспользуйте AdaptyUiTagResolver для обработки пользовательских тегов в тексте флоу. Резолвер принимает тег и возвращает соответствующую строку. Подробнее см. в разделе «Пользовательские теги в Paywall Builder».
timerResolverнеобязательныйПередайте резолвер сюда, если планируете использовать пользовательскую функциональность таймера.

Хотите увидеть реальный пример интеграции Adapty SDK в мобильное приложение? Посмотрите наши примеры приложений — они демонстрируют полную настройку: отображение пейволов, совершение покупок и другие базовые функции.

Изменение отступов флоу

Отступы — это пространство вокруг флоу, которое не даёт кликабельным элементам скрываться за системными панелями. По умолчанию Adapty автоматически подстраивает отступы, что отлично работает для полноэкранных флоу.

Если ваш флоу не занимает весь экран, возможно, вам потребуются собственные отступы:

  • Если ни строка состояния, ни панель навигации не перекрывают AdaptyFlowView, используйте AdaptyFlowInsets.None.
  • Для более тонкой настройки — например, если флоу перекрывается с верхней строкой состояния, но не с нижней панелью — можно задать только bottomInset равным 0, как показано в примере ниже:

Использование таймеров, заданных разработчиком

Чтобы использовать таймеры, заданные разработчиком, в мобильном приложении, создайте объект timerResolver — словарь или карту, которая сопоставляет пользовательские таймеры со строковыми значениями, подставляемыми при рендеринге флоу. Пример:

В этом примере CUSTOM_TIMER_NY — это Timer ID таймера, заданного разработчиком в дашборде Adapty. timerResolver гарантирует, что приложение динамически обновляет таймер с правильным значением — например, 13d 09h 03m 34s (вычисляется как время окончания таймера, например Новый год, минус текущее время).

Используйте пользовательские теги

Чтобы использовать пользовательские теги в мобильном приложении, создайте объект tagResolver — словарь или карту, которая сопоставляет пользовательские теги со строковыми значениями, заменяющими их при отрисовке флоу. Пример:

В этом примере USERNAME — это пользовательский тег, который вы задали в дашборде Adapty в виде <USERNAME/>. tagResolver обеспечивает динамическую замену этого тега на указанное значение — например, John.

Рекомендуем создавать и заполнять tagResolver непосредственно перед показом флоу. Когда он будет готов, передайте его в метод AdaptyUI, который вы используете для отображения флоу.

Изменение цвета индикатора загрузки флоу

Вы можете переопределить цвет индикатора загрузки по умолчанию следующим образом:


<style name="AppTheme" parent="android:Theme.Material.Light.NoActionBar">

    <item name="adapty_progressIndicatorColor">@color/yourColor</item>
</style>

Если вы создали пейвол с помощью Paywall Builder, вам не нужно беспокоиться о его рендеринге в коде мобильного приложения для отображения пользователю. Такой пейвол содержит как то, что должно отображаться внутри него, так и то, как именно это должно показываться.

Этот гайд предназначен только для пейволов нового Paywall Builder, которые требуют SDK v3.0. Процесс отображения пейволов отличается для пейволов, созданных с разными версиями Paywall Builder, пейволов на Remote Config и режима Observer.

Чтобы получить объект viewConfiguration, используемый ниже, смотрите раздел Получение пейволов Paywall Builder и их конфигурации.

Параметры запроса:

ПараметрНаличиеОписание
viewConfigurationобязательныйПередайте объект AdaptyUI.LocalizedViewConfiguration, содержащий визуальные данные пейвола. Используйте метод Adapty.getViewConfiguration(paywall) для его загрузки. Подробнее см. в разделе Получение визуальной конфигурации пейвола.
productsнеобязательныйПередайте массив AdaptyPaywallProduct, чтобы оптимизировать время отображения продуктов на экране. Если передать null, AdaptyUI автоматически загрузит необходимые продукты.
eventListenerнеобязательныйПередайте AdaptyUiEventListener для отслеживания событий пейвола. Для удобства рекомендуется расширить AdaptyUiDefaultEventListener. Подробнее см. в разделе Обработка событий пейвола.
insetsнеобязательный

Отступы вокруг пейвола, которые предотвращают перекрытие интерактивных элементов системными панелями.

По умолчанию: UNSPECIFIED — Adapty автоматически подбирает отступы, что отлично работает для пейволов на весь экран.

Если ваш пейвол не занимает весь экран, возможно, вам потребуется задать пользовательские отступы. Подробнее читайте в разделе Изменение отступов пейвола ниже.

personalizedOfferResolverнеобязательныйЧтобы указать персонализированную цену (подробнее), реализуйте AdaptyUiPersonalizedOfferResolver и передайте собственную логику, которая возвращает true для AdaptyPaywallProduct с персонализированной ценой и false в противном случае.
tagResolverнеобязательныйИспользуйте AdaptyUiTagResolver для обработки пользовательских тегов в тексте пейвола. Резолвер принимает тег и возвращает соответствующую строку. Подробнее см. в разделе «Пользовательские теги в Paywall Builder».
timerResolverнеобязательныйПередайте резолвер, если планируете использовать пользовательский таймер.

Хотите увидеть реальный пример интеграции Adapty SDK в мобильное приложение? Посмотрите наши примеры приложений — они демонстрируют полную настройку: отображение пейволов, совершение покупок и другие базовые функции.

Изменение отступов пейвола

Отступы — это пространство вокруг пейвола, которое не даёт интерактивным элементам скрыться за системными панелями. По умолчанию Adapty автоматически подбирает отступы, что отлично работает для пейволов во весь экран.

Если ваш пейвол не занимает весь экран, можно задать отступы вручную:

  • Если ни строка состояния, ни панель навигации не перекрываются с AdaptyPaywallView, используйте AdaptyPaywallInsets.NONE.
  • Для более нестандартных случаев, например если пейвол перекрывается с верхней строкой состояния, но не с нижней панелью, можно установить только bottomInset в 0, как показано в примере ниже:

Использование таймеров, заданных разработчиком

Чтобы использовать таймеры, заданные разработчиком, в своём мобильном приложении, создайте объект timerResolver — словарь или карту, в которых каждый пользовательский таймер сопоставлен со строковым значением, на которое он будет заменён при отображении пейвола. Пример:

В этом примере CUSTOM_TIMER_NY — это Timer ID таймера, заданного разработчиком в дашборде Adapty. timerResolver гарантирует, что приложение динамически обновляет таймер с нужным значением — например, 13d 09h 03m 34s (вычисляется как время окончания таймера, например Новый год, минус текущее время).

Использование пользовательских тегов

Чтобы использовать пользовательские теги в мобильном приложении, создайте объект tagResolver — словарь или карту, которая сопоставляет пользовательские теги со строковыми значениями, подставляемыми при отображении пейвола. Пример:

В этом примере USERNAME — это кастомный тег, который вы добавили в дашборде Adapty как <USERNAME/>. tagResolver обеспечивает динамическую замену этого тега на указанное значение — например, John.

Рекомендуем создавать и заполнять tagResolver непосредственно перед показом пейвола. Когда он будет готов, передайте его в метод AdaptyUI, который вы используете для отображения пейвола.

Изменение цвета индикатора загрузки пейвола

Вы можете переопределить цвет индикатора загрузки по умолчанию следующим образом:


<style name="AppTheme" parent="android:Theme.Material.Light.NoActionBar">

    <item name="adapty_progressIndicatorColor">@color/yourColor</item>
</style>