Реализация веб-пейволов
Прежде чем начать, убедитесь, что вы настроили веб-пейвол в дашборде и установили Adapty SDK версии 3.6.1 или выше.
Открытие веб-пейволов
Если вы используете собственный пейвол, открытие веб-пейволов нужно реализовать вручную с помощью метода SDK. Метод .openWebPaywall:
- Генерирует уникальный URL, который позволяет Adapty связать конкретный показанный пользователю пейвол с веб-страницей, на которую он перенаправляется.
- Отслеживает возврат пользователя в приложение и затем с короткими интервалами вызывает
.getProfile, чтобы определить, обновились ли права доступа профиля. Таким образом, если платёж прошёл успешно и права доступа обновились, подписка активируется в приложении практически мгновенно.
try {
await adapty.openWebPaywall({ paywallOrProduct: product });
} catch (error) {
console.error('Failed to open web paywall:', error);
}
Существует две версии метода openWebPaywall:
openWebPaywall({ paywallOrProduct: product })— генерирует URL по пейволу и добавляет в URL данные о продукте.openWebPaywall({ paywallOrProduct: paywall })— генерирует URL по пейволу без добавления данных о продукте. Используйте этот вариант, если продукты в пейволе Adapty отличаются от продуктов в веб-пейволе. В SDK v4 сторона пейвола уpaywallOrProductпринимаетAdaptyFlowPaywall— вариацию пейвола полученного флоу. Перед обращением по индексу убедитесь, чтоflow.paywallsне пуст, например:flow.paywalls[0].
Обработка ошибок
| Ошибка | Описание | Рекомендуемое действие |
|---|---|---|
| AdaptyError.paywallWithoutPurchaseUrl | У пейвола не настроен URL для веб-покупки | Проверьте, правильно ли настроен пейвол в дашборде Adapty |
| AdaptyError.productWithoutPurchaseUrl | У продукта отсутствует URL для веб-покупки | Проверьте настройки продукта в дашборде Adapty |
| AdaptyError.failedOpeningWebPaywallUrl | Не удалось открыть URL в браузере | Проверьте настройки устройства или предложите альтернативный способ оплаты |
| AdaptyError.failedDecodingWebPaywallUrl | Не удалось корректно закодировать параметры в URL | Убедитесь, что параметры URL корректны и правильно отформатированы |
Получите URL веб-пейвола без его открытия
Если вы хотите самостоятельно открыть страницу покупки в веб-среде, а не доверять это SDK, используйте createWebPaywallUrl. Метод возвращает тот же уникальный URL, который открыл бы openWebPaywall, — его можно отрисовать в собственном веб-вью или обработать редирект на своих условиях. Принимает тот же аргумент paywallOrProduct — вариант пейвола из полученного флоу (AdaptyFlowPaywall) или AdaptyPaywallProduct.
try {
const url = await adapty.createWebPaywallUrl({ paywallOrProduct: product });
// open `url` in your own web view, or handle the redirect yourself
} catch (error) {
console.error('Failed to create web paywall URL:', error);
}
Чтобы открыть произвольный URL (не веб-пейвол) через нативный браузер — например, по нажатию кнопки во флоу — используйте adapty.openWebUrl.
Открытие веб-пейволов во встроенном браузере
Открытие веб-пейволов во встроенном браузере поддерживается начиная с Adapty SDK v3.15.
По умолчанию веб-пейволы открываются во внешнем браузере.
Чтобы обеспечить бесшовный пользовательский опыт, вы можете открывать веб-пейволы во встроенном браузере. Это отображает страницу веб-покупки прямо внутри вашего приложения, позволяя пользователям завершать транзакции без переключения между приложениями.
Чтобы включить это, установите openIn в значение WebPresentation.BrowserInApp в openWebPaywall:
try {
await adapty.openWebPaywall({
paywallOrProduct: product,
openIn: WebPresentation.BrowserInApp, // default – WebPresentation.BrowserOutApp
});
} catch (error) {
console.error('Failed to open web paywall:', error);
}