主题
App内集成H5移动端SDK兼容性配置
在移动应用(App)中集成金融级实人认证H5移动端SDK时,可能会因为内嵌浏览器(WebView)版本、内置权限等原因而无法兼容。本文旨在介绍如何在App配置WebView使用相机设备、允许网页视频播放等权限,以减少与H5移动端SDK兼容性问题。
Android配置
由于Android生态碎片化严重,App内使用Android原生Webview调起系统摄像头可能存在一些兼容性问题,例如摄像头被拒绝,重新授权无法唤起刷脸页面等。以下是关于如何解决这些兼容性问题的步骤。
- 在AndroidManifest.xml文件声明以下权限。
xml
<!--应用访问相机权限。-->
<uses-permission android:name="android.permission.CAMERA" />
<!--应用访问网络权限。-->
<uses-permission android:name="android.permission.INTERNET" />
设置Webview。
重写
onPermissionRequest()
方法,允许网页申请权限弹窗回调。对于基于WebView的网页应用,由于权限管理是由浏览器负责,用户访问H5网页调用摄像头时,如果用户拒绝了该权限请求,用户再次打开网页调用摄像头时,默认提示拒绝访问。因此您可以通过重写
onPermissionRequest()
方法,自定义处理网页权限请求。示例如下:webView.setWebChromeClient(new WebChromeClient(){ @Override public void onPermissionRequest(PremissionRequest request) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // 检查当前设备系统版本是否在Android 5.0及以上 // 如果是,则直接授予网页请求的所有权限。示例仅供参考,请根据实际情况重写。 request.grant(request.getResources()); } } })
设置WebView允许网页视频自动播放。
java// 允许自动播放 webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
iOS配置
在Info.plist中声明访问设备的摄像头权限。
.NSCameraUsageDescription
设置Webview。
通过
WKWebViewConfiguration
类配置允许使用相机。WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; config.allowsInlineMediaPlayback = YES;
设置允许网页视频自动播放以及网页内播放。
swift
// 允许视频自动播放 let myAudiovisualMediaType: WKAudiovisualMediaTypes = [] config.mediaTypesRequiringUserActionForPlayback = myAudiovisualMediaType; // 允许视频在网页内播放(非全屏播放) config.allowsInlineMediaPlayback = true;
Object C
// 允许视频自动播放 config.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone; // 允许视频在网页内播放(非全屏播放) config.allowsInlineMediaPlayback = YES;
2.问题反馈
反馈问题时请附加页面截图/视频、请求入参回参等关键信息。
是否仍需要帮助? 请保持联络!