Реализация веб-пейволов в Kotlin Multiplatform SDK
Перед началом убедитесь, что вы настроили веб-пейвол в дашборде и установили Adapty SDK версии 3.15 или выше.
Открытие веб-пейволов
Если вы работаете с пейволом, который разработали самостоятельно, вам нужно обрабатывать веб-пейволы с помощью метода SDK. Метод openWebPaywall:
- Генерирует уникальный URL, позволяющий Adapty связать конкретный показанный пейвол с конкретным пользователем и веб-страницей, на которую тот перенаправляется.
- Отслеживает возвращение пользователя в приложение и затем запрашивает
getProfileс короткими интервалами, чтобы определить, обновились ли права доступа профиля.
Таким образом, если платёж прошёл успешно и права доступа обновились, подписка активируется в приложении практически мгновенно.
После возвращения пользователей в приложение обновите UI, чтобы отразить изменения в профиле. Adapty получит и обработает события обновления профиля.
viewModelScope.launch {
Adapty.openWebPaywall(product = product).onSuccess {
// the web paywall was opened successfully
}.onError { error ->
// handle the error
}
}
Есть две версии метода openWebPaywall:
openWebPaywall(product = product)— генерирует URL по пейволу и добавляет данные о продукте в URL.openWebPaywall(paywall = paywall)— генерирует URL по пейволу без добавления данных о продукте в URL. Используйте этот вариант, если продукты в пейволе Adapty отличаются от продуктов в веб-пейволе.
В SDK v4 параметр paywall заменён параметром flowPaywall, принимающим AdaptyFlowPaywall — один из вариантов пейвола в flow.paywalls. См. гайд по миграции.
Открытие веб-пейволов во встроенном браузере
По умолчанию веб-пейволы открываются во внешнем браузере.
Чтобы обеспечить бесшовный пользовательский опыт, вы можете открывать веб-пейволы во встроенном браузере. Страница покупки будет отображаться прямо в приложении, и пользователям не придётся переключаться между приложениями для завершения транзакции.
Чтобы включить это, установите параметр openIn в значение AdaptyWebPresentation.IN_APP_BROWSER:
viewModelScope.launch {
Adapty.openWebPaywall(
product = product,
openIn = AdaptyWebPresentation.IN_APP_BROWSER // default – EXTERNAL_BROWSER
).onSuccess {
// the web paywall was opened successfully
}.onError { error ->
// handle the error
}
}