App内集成H5移动端SDK兼容性配置

更新时间:2025-04-08 06:38:19

在移动应用(App)中集成金融级实人认证H5移动端SDK时,可能会因为内嵌浏览器(WebView)版本、内置权限等原因而无法兼容。本文旨在介绍如何在App配置WebView使用相机设备、允许网页视频播放等权限,以减少与H5移动端SDK兼容性问题。

Android配置

由于Android生态碎片化严重,App内使用Android原生Webview调起系统摄像头可能存在一些兼容性问题,例如摄像头被拒绝,重新授权无法唤起刷脸页面等。以下是关于如何解决这些兼容性问题的步骤。

  1. AndroidManifest.xml文件声明以下权限。

    <!--应用访问相机权限。-->
    <uses-permission android:name="android.permission.CAMERA" />
    <!--应用访问网络权限。-->
    <uses-permission android:name="android.permission.INTERNET" />
  2. 设置Webview。

    1. 重写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());
              }
          }
      })
    2. 设置WebView允许网页视频自动播放。

      // 允许自动播放
      webView.getSettings().setMediaPlaybackRequiresUserGesture(false);

iOS配置

  1. Info.plist中声明访问设备的摄像头权限。

    .NSCameraUsageDescription
  2. 设置Webview。

    1. 通过WKWebViewConfiguration类配置允许使用相机。

      WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
      config.allowsInlineMediaPlayback = YES;
    2. 设置允许网页视频自动播放以及网页内播放。

      Swift
      Object C
      // 允许视频自动播放
      let myAudiovisualMediaType: WKAudiovisualMediaTypes = []
      config.mediaTypesRequiringUserActionForPlayback = myAudiovisualMediaType;
      
      // 允许视频在网页内播放(非全屏播放)
      config.allowsInlineMediaPlayback = true;
      // 允许视频自动播放
      config.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;
      
      // 允许视频在网页内播放(非全屏播放)
      config.allowsInlineMediaPlayback = YES;

WebRTC兼容性支持列表

  • iOS 14.3及以上版本,WKWebView增加了对WebRTC的支持。因此,微信、第三方浏览器和App需要在iOS 14.3及以上版本上才能支持WebRTC功能。对于第三方iOSApp,若未使用WKWebView,则需查看所用的WebView是否支持WebRTC功能来确定是否支持WebRTC。

  • H5移动端接入方案提供了降级功能,可以通过应用系统服务端调用实人认证服务端发起认证(InitFaceVerify)时传入的ProcedurePriority参数进行控制,当通过移动端H5方式认证出现WebRTC或者Webassembly不兼容时,将按照参数设置的策略实施降级策略。

客户端

Android版本

iOS版本

Harmony版本

客户端

Android版本

iOS版本

Harmony版本

Edge

Android 4.0 及以上版本

iOS 14.3 及以上版本

不支持

FireFox

Chrome

Harmony Next 5.0.1及以上版本

Opera

不支持

QQ

Harmony Next 5.0.1及以上版本

百度

Android Browser 5.0+

不支持

不支持

Safari

不支持

iOS 11.3 及以上版本

UC

Android 4.0 及以上版本

不支持

UC极速浏览器

夸克浏览器

Android 7.0 及以上版本

不支持

厂商内置浏览器

小米、三星等部分机型支持

Harmony Next 5.0.1及以上版本

微信(App)

Android 4.0 及以上版本

iOS 14.3 及以上版本

App

Android 4.0 及以上版本且使用的WebView支持WebRTC

iOS 14.3 及以上版本且使用 iOS 自带 WKWebView

  • 本页导读
  • Android配置
  • iOS配置
  • WebRTC兼容性支持列表