Перейти к основному содержанию
В этом руководстве описано, как встроить веб-процесс верификации Didit в нативный мобильный компонент WebView. Это не то же самое, что нативные SDK для iOS, Android, React Native и Flutter. WebView — это запасной вариант для платформ, на которых нативный SDK использовать нельзя.

Всегда предпочитайте нативные SDK

Нативные SDK доступны для iOS, Android, React Native и Flutter. Они обеспечивают заметно лучшую производительность, работу с камерой, считывание NFC-паспортов и ID-карт, интеграцию биометрии и удобство для пользователя. Используйте WebView, только если для вашей платформы нет нативного SDK.

iOS SDK

Нативный SDK на Swift для iOS 13+

Android SDK

Нативный SDK на Kotlin для Android 6.0+

React Native SDK

Кроссплатформенный API на TypeScript. Совместим с Expo.

Flutter SDK

Кроссплатформенный API на Dart. Пакет pub.dev.

Когда использовать 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 обратного вызова с параметрами запроса:
Для лучшего пользовательского опыта используйте пользовательскую URL-схему (например, myapp://verification-complete) в качестве обратного вызова и обрабатывайте её как диплинк в приложении.

Устранение неполадок

  1. Убедитесь, что mediaPlaybackRequiresUserGesture имеет значение false
  2. Проверьте, что разрешения на использование камеры предоставлены на уровне ОС
  3. Проверьте, что строка агента пользователя задана правильно
  1. Убедитесь, что URL сессии корректен и не истёк
  2. Проверьте подключение к интернету
  3. Убедитесь, что JavaScript включён в настройках WebView
  1. Убедитесь, что ваш URL обратного вызова совпадает с тем, который вы указали при создании сессии
  2. Проверьте, что делегат или слушатель навигации настроен правильно
  3. Попробуйте задать callback_method равным "both" при создании сессии

Последнее изменение 7 ноября 2026 г.