跳转电子签H5
1. App集成电子签H5兼容性适配
人脸核身兼容性适配。参考人脸核身 App 调用 H5 兼容性配置指引
B2B场景或B2C填写场景,选择文件或图片上传适配。参考Android WebView选择图片、发送图片
B2B场景,文件下载适配。企业认证时,用户可以下载模板文件。Android App中,需拦截 Webview 下载操作,转系统调用。调用 webview.setDownloadListener() 接口设置下载拦截,可以使用系统下载或者App自己实现。
B2B场景,拦截
weixin://
可跳转到微信小程序创建印章。重写 Webview shouldOverrideUrlLoading 或 WKNavigationDelegate 接口,遇到weixin://
开头的链接时,转系统调用。目前,H5 B2B合同签署未实现企业印章创建的流程,需引导到微信小程序中创建。(可选) 拦截返回应用的
qianapp://
。需要从电子签H5直接返回App原生页面时,且配置对应的JumpUrl格式之后,才需要适配。
初次使用Android Webview时,建议先参考 Android-AdvancedWebView ,了解各种适配相关的接口。Android Webview上需要各种适配之后,其功能才接近于手机浏览器。检验自己的适配是否成功,分别在手机浏览器与自己App Webview打开H5页面,两者的功能差异。
文件下载参考:
- android, Android -- WebView 支持文件下载的几种方式 、 ANDROID WebView加载H5页面下载文件和下载完毕后自动打开文件
- iOS, How to download files in wkwebview
拦截 URL scheme 参考:
- android, Android WebView err_unknown_url_scheme ,见 shouldOverrideUrlLoading 方法。
- iOS, UPI Intent in WebView - iOS ,见WKNavigationDelegate方法。
UniApp HTML5Plus:
使用UniApp构建App时,可以直接使用其Webview组件集成电子签H5。先配置好App所需的相机、麦克风、文件存储、文件读取、访问文件系统等权限,可参考人脸核身 App 调用 H5 兼容性配置指引使用的权限点。再配置HTML5Plus WebviewObject.overrideUrlLoading(),可以拦截 URL scheme 实现返回到UniApp本地页面。
2. 获取电子签H5链接
可参考获取H5签署链接 、获取H5批量签署链接 ,以及其它与H5相关的接口。
H5签署、认证等链接因涉及人脸核身,不支持在iframe中使用,请参考“3.1 腾讯电子签H5 → 集成方H5”配置JumpUrl串联业务流程。
3. 返回应用JumpUrl格式
App集成H5时,在电子签H5页面完成签署之后,一般需要返回到集成方的H5或原生页面。针对这两种不同的集成方式,集成方需要传不同的JumpUrl数据格式与兼容性适配。
3.1 腾讯电子签H5 → 集成方H5
该场景表现为:双方H5均在普通浏览器、APP Webview中。
JumpUrl格式: https://YOUR_CUSTOM_URL/xxxx
,只需满足 https://
开头的正确且合规的网址即可。
注意: 根据安全要求,浏览器或Webview可能不允许跳转到普通的http协议。
返回应用时携带的数据:当query中有appendResult=qian
时,在YOUR_CUSTOM_URL后面添加query参数签署成功的参数,具体格式参考
返回应用数据格式
,比如 https://YOUR_CUSTOM_URL?flowId=xxx&action=sign&result=success&from=tencent_ess
。 否则,直接跳转到原始的JumpUrl。
3.2 腾讯电子签H5 → 集成方原生App
该场景表现为:通过原生App的Webview承载腾讯电子签H5。
JumpUrl格式: qianapp://YOUR_CUSTOM_URL
,只需满足 qianapp://
开头的URL即可。
注意: APP实现方,需要拦截Webview地址跳转,发现url是 qianapp://
开头时跳转到原生页面。
返回应用时携带的数据:仅当query中有appendResult=qian
时,在YOUR_CUSTOM_URL后面添加query参数签署成功的参数,具体格式参考
返回应用数据格式
,比如 qianapp://YOUR_CUSTOM_URL?flowId=xxx&action=sign&result=success&from=tencent_ess
。 否则,直接跳转到原始的JumpUrl。
4. 返回应用数据格式
返回到集成方应用时,每个字段的TS类型定义如下:
// 签署、填写、拒签,返回格式如下
{
flowId: string,
showStatus: number, // 注: 签署时,仅表示提交签署任务成功,showStatus 可能还是 3
action: 'fill' | 'sign' | 'reject_fill' | 'reject_sign' | 'view' | '',
result: 'success' | 'fail' | '',
from: 'tencent_ess'
}
注意: 有的场景不包含上面的所有字段。比如,批量签署或开通自动签,无flowId。