Skip to content

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

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

Android配置

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

  1. 在AndroidManifest.xml文件声明以下权限。
xml
<!--应用访问相机权限。-->
<uses-permission android:name="android.permission.CAMERA" />
<!--应用访问网络权限。-->
<uses-permission android:name="android.permission.INTERNET" />
  1. 设置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允许网页视频自动播放。

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

iOS配置

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

    .NSCameraUsageDescription
  2. 设置Webview。

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

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

      swift

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

    Object C

    // 允许视频自动播放
    config.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;
    
    // 允许视频在网页内播放(非全屏播放)
    config.allowsInlineMediaPlayback = YES;

2.问题反馈

反馈问题时请附加页面截图/视频、请求入参回参等关键信息。

是否仍需要帮助? 请保持联络!