iOS 自动播放配置
1、须要在初始化的地位配置下
// 是否容许内联或应用本机全屏控制器,默认是 NO。
wkWebConfig.allowsInlineMediaPlayback = YES;
if (@available(iOS 10.0, *)) {wkWebConfig.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;} else {wkWebConfig.mediaTypesRequiringUserActionForPlayback = NO;}
2、如果有些视频设置了上述代码还不会自动播放, 配置 WKWebview 代理
(_wkwebView.navigationDelegate = self;)
在加载实现后代理办法里手动调用下
// 页面加载实现之后调用
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {[self playVideo];
}
- (void)playVideo{NSString *script = @"var videos = document.querySelectorAll(\"video\"); for (var i = videos.length - 1; i >= 0; i--) {var ivideo = videos[i]; ivideo.setAttribute(\"webkit-playsinline\",\"\"); ivideo.play();};";
[_wkwebView evaluateJavaScript:script completionHandler:nil];
}
Android 自动播放配置
WebSettings webSetting = webView.getSettings();
高版本 https 问题
webSetting.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
webSetting.setSupportMultipleWindows(false);
webSetting.setBlockNetworkImage(true);// 解决图片不显示
webSetting.setJavaScriptEnabled(true); // 是否开启 JS 反对
webSetting.setAllowFileAccess(true); // 是否容许拜访文件
webSetting.setDomStorageEnabled(true); // 是否节点缓存
webSetting.setDatabaseEnabled(true); // 是否数据缓存
webSetting.setAppCacheEnabled(true); // 是否利用缓存 webSetting.setMediaPlaybackRequiresUserGesture(false); // 是否要手势触发媒体 重点
webSetting.setTextZoom(100); // 设置文本缩放的百分比
webSetting.setLoadsImagesAutomatically(true); // 是否主动加载图片
webSetting.setDefaultTextEncodingName(“UTF-8”); // 设置编码格
webSetting.setBlockNetworkLoads(false); // 是否从网络获取资源
webView.loadUrl(“https://xxx”);