跳转到主要内容
本指南介绍如何将 Didit 网页验证流程 嵌入原生移动端 WebView 组件。它不同于原生 iOS/Android/React Native/Flutter SDK,是在无法使用原生 SDK 的平台上的备选方案。

始终优先使用原生 SDK

原生 SDK 支持 iOS、Android、React Native 和 Flutter。它们在性能、摄像头处理、NFC 护照/证件读取、生物识别集成和用户体验方面明显更优。仅当你的平台没有可用的原生 SDK 时,才使用 WebView。

iOS SDK

面向 iOS 13+ 的原生 Swift SDK

Android SDK

面向 Android 6.0+ 的原生 Kotlin SDK

React Native SDK

跨平台 TypeScript API,兼容 Expo。

Flutter SDK

跨平台 Dart API,pub.dev 软件包。

何时使用 WebView

仅在以下情况下使用 WebView 集成:
  • 你的开发平台没有原生 SDK(例如 Xamarin、Cordova 或其他小众框架)
  • 在集成原生 SDK 之前,你需要快速搭建原型或概念验证
  • 你正在从 Web 迁移,希望通过临时桥接过渡到原生集成

工作原理

1

创建会话

你的后端调用 创建会话 API,并获得托管的 url。
2

在 WebView 中打开

你的应用在 WebView 组件中加载 url。
3

用户完成验证

用户在 WebView 中完成验证流程。
4

拦截回调

完成后,WebView 会跳转到你的回调 URL。你的应用拦截该次跳转并提取结果。
5

通过 Webhook 获取完整结果

你的后端通过 Webhook 接收完整的决策数据。

创建会话

在打开验证流程之前,请先从后端创建会话:
响应(201,url 中嵌入的是 12 位的 session_token,而不是 session_id):
在 WebView 中加载 url 字段,切勿手动根据 session_token 拼接该地址。

React Native

安装 WebView 软件包:

实现

React Native 演示

Expo + WebView 验证示例

Flutter

在 pubspec.yaml 中添加所需的软件包:

实现

Flutter 演示

Flutter WebView 验证示例

关键配置

必需的用户代理

你必须设置通用的移动端用户代理,WebView 才能正常工作:
这可确保摄像头访问正常、界面渲染正确,并实现最佳的媒体播放效果。

必需的媒体设置


处理回调

验证完成后,WebView 会携带查询参数跳转到你的回调 URL:
为获得更好的用户体验,请使用自定义 URL 方案(例如 myapp://verification-complete)作为回调地址,并在应用中将其作为深层链接处理。

故障排除

  1. 确保 mediaPlaybackRequiresUserGesture 为 false
  2. 在操作系统层面确认已授予摄像头权限
  3. 检查用户代理字符串是否已正确设置
  1. 确认会话 URL 有效且未过期
  2. 检查网络连接
  3. 确保 WebView 设置中已启用 JavaScript
  1. 确认回调 URL 与创建会话时设置的一致
  2. 检查导航代理(delegate)或监听器是否已正确配置
  3. 尝试在创建会话时将 callback_method 设为 "both"

最后修改于 2026年11月7日