Когда использовать WebView
Интеграцию через WebView используйте только в следующих случаях:- Вы разрабатываете под платформу без нативного SDK (например, Xamarin, Cordova или другие нишевые фреймворки)
- Вам нужен быстрый прототип или проверка концепции (PoC) перед интеграцией нативного SDK
- Вы переходите с веб-версии и нужен временный мост к нативной интеграции
Как это работает
1
Создайте сессию
Ваш бэкенд вызывает API создания сессии и получает размещённый
url.2
Откройте в WebView
Ваше приложение загружает
url в компонент WebView.3
Пользователь проходит верификацию
Пользователь проходит процесс верификации внутри WebView.
4
Перехватите обратный вызов
По завершении WebView переходит на ваш URL обратного вызова. Приложение перехватывает этот переход и извлекает результат.
5
Получите полные результаты через webhook
Ваш бэкенд получает полные данные о решении через webhook.
Создание сессии
Перед открытием процесса верификации создайте сессию на вашем бэкенде:201: url содержит 12-символьный session_token, а не session_id):
url в WebView. Никогда не формируйте его вручную из session_token.
React Native
Установите пакет WebView:Реализация
Демо для React Native
Пример верификации с Expo и WebView
Flutter
Добавьте необходимые пакеты вpubspec.yaml:
Реализация
Демо для Flutter
Пример верификации с WebView во Flutter
Критически важная конфигурация
Агент пользователя (обязательно)
Чтобы WebView работал корректно, обязательно задайте стандартный мобильный User-Agent:Настройки медиа (обязательно)
Обработка обратного вызова
После верификации WebView перенаправляет на ваш URL обратного вызова с параметрами запроса:Устранение неполадок
Камера не работает
Камера не работает
- Убедитесь, что
mediaPlaybackRequiresUserGestureимеет значениеfalse - Проверьте, что разрешения на использование камеры предоставлены на уровне ОС
- Проверьте, что строка агента пользователя задана правильно
Белый экран или проблемы с загрузкой
Белый экран или проблемы с загрузкой
- Убедитесь, что URL сессии корректен и не истёк
- Проверьте подключение к интернету
- Убедитесь, что JavaScript включён в настройках WebView
Обратный вызов не срабатывает
Обратный вызов не срабатывает
- Убедитесь, что ваш URL обратного вызова совпадает с тем, который вы указали при создании сессии
- Проверьте, что делегат или слушатель навигации настроен правильно
- Попробуйте задать
callback_methodравным"both"при создании сессии