APP调用H5兼容配置指引

[!TIP] 兼容性要求:

Android系统版本5及以上,并按照指引做适配

iOS系统版本14.3及以上,并按照指引做适配

1.需要使用https; 2.安卓,IOS 通过web-view使用需要进行一定的适配。 方案如下:

安卓解决方案

Android5.0 之后的版本原生webview,app层面需要摄像机权限。

 <uses-permission android:name="android.permission.INTERNET"/>
 <uses-permission android:name="android.permission.CAMERA" />
 <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT" />

网页中会实时弹出获取摄像头权限,需要在webview授权处理中允许

webView.setWebChromeClient(new WebChromeClient() {

    @Override
    public void onPermissionRequest(final PermissionRequest request) {
        Log.d("MainActivity", "onPermissionRequest");
     MainActivity.this.runOnUiThread(new Runnable() {
        @TargetApi(Build.VERSION_CODES.LOLLIPOP)
        @Override
        public void run() {
            request.grant(request.getResources());
        }
    });
}

});

使用其它浏览器内核需要根据相关浏览器要求进行配置。

IOS解决方案

WebRTC在iOS上,仅支持WKWebView。

OC语法:

// 初始化配置对象WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];// 默认是NO,这个值决定了用内嵌HTML5播放视频还是用本地的全屏控制
configuration.allowsInlineMediaPlayback = YES;// 自动播放, 不需要用户采取任何手势开启播放if (@available(iOS 10.0, *)) {
    // WKAudiovisualMediaTypeNone 音视频的播放不需要用户手势触发,即为自动播放
    configuration.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;
} else {
    configuration.requiresUserActionForMediaPlayback = NO;
}
       WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:configuration];

Swift语法

// 初始化配置对象
let configuration = WKWebViewConfiguration() // 默认是NO,这个值决定了用内嵌HTML5播放视频还是用本地的全屏控制
configuration.allowsInlineMediaPlayback = true
// 自动播放,不需要用户采取任何手势开启播放
if #available(iOS 10.0, *) {
// WKAudiovisualMediaTypeNone 音视频的播放不需要用户手势触发,即为自动播放
configuration.mediaTypesRequiringUserActionForPlayback = []
} else {
configuration.requiresUserActionForMediaPlayback = false
}
let webView = WKWebView(frame: CGRect.zero, configuration: configuration)
Copyright © China Financial Digital Technology Co., Ltd. all right reserved,powered by Gitbook该文章修订时间: 2023-06-28 15:26:57

results matching ""

    No results matching ""