Реализация веб-пейволов в Android SDK
Прежде чем начать, убедитесь, что вы настроили веб-пейвол в дашборде и установили Adapty SDK версии 3.15 или выше.
Открытие веб-пейволов
Если вы работаете с пейволом, разработанным самостоятельно, вам нужно обрабатывать веб-пейволы с помощью метода SDK. Метод .openWebPaywall:
- Генерирует уникальный URL, позволяющий Adapty связать конкретный пейвол, показанный определённому пользователю, с веб-страницей, на которую он будет перенаправлен.
- Отслеживает момент возврата пользователей в приложение и затем запрашивает
.getProfileс короткими интервалами, чтобы определить, обновились ли права доступа профиля.
Таким образом, если платёж прошёл успешно и права доступа обновились, подписка активируется в приложении практически сразу.
После того как пользователи вернутся в приложение, обновите UI, чтобы отразить изменения профиля. Adapty получит и обработает события обновления профиля.
Adapty.openWebPaywall(
activity = activity,
product = product,
) { error ->
if (error == null) {
// the web paywall was opened successfully
} else {
// handle the error
}
}
Существует две версии метода openWebPaywall:
openWebPaywall(product)— генерирует URL по пейволу и добавляет в URL данные о продукте.openWebPaywall(paywall)— генерирует URL по пейволу без добавления данных о продукте. Используйте его, когда продукты в пейволе Adapty отличаются от тех, что указаны в веб-пейволе.
Открытие веб-пейволов во встроенном браузере
По умолчанию веб-пейволы открываются во внешнем браузере.
Чтобы обеспечить более плавный пользовательский опыт, можно открывать веб-пейволы во встроенном браузере. Это отображает страницу веб-покупки прямо внутри приложения, позволяя пользователям завершать транзакции без переключения между приложениями.
Для этого установите параметр presentation в значение AdaptyWebPresentation.InAppBrowser:
Adapty.openWebPaywall(
activity = activity,
product = product,
presentation = AdaptyWebPresentation.InAppBrowser,
) { error ->
if (error == null) {
// the web paywall was opened successfully
} else {
// handle the error
val adaptyError = error
}
}