Android(安卓)webview 播放视频无法播放以及可以播放预览图为加载不出来
16lz
2021-01-24
Android webview 播放视频无法播放以及可以播放预览图为加载不出来的解决方案
1,webView的配置工作:
WebSettings webSettings = shopWebView.getSettings();webSettings.setBlockNetworkImage(false);webSettings.setLoadWithOverviewMode(true);webSettings.setGeolocationEnabled(true);webSettings.setUseWideViewPort(true); // 关键点webSettings.setPluginState(WebSettings.PluginState.ON);//支持js脚本webSettings.setJavaScriptEnabled(true);//支持缩放webSettings.setSupportZoom(true);//支持内容重新布局webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);//多窗口webSettings.supportMultipleWindows();//当webview调用requestFocus时为webview设置节点webSettings.setNeedInitialFocus(true);//设置支持缩放webSettings.setBuiltInZoomControls(true);//支持通过JS打开新窗口webSettings.setJavaScriptCanOpenWindowsAutomatically(true);//支持自动加载图片webSettings.setLoadsImagesAutomatically(true);//优先使用缓存:webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);//提高渲染的优先级webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);// 开启H5(APPCache)缓存功能webSettings.setAppCacheEnabled(true);// 开启 DOM storage 功能webSettings.setDomStorageEnabled(true);// 应用可以有数据库webSettings.setDatabaseEnabled(true);// 可以读取文件缓存(manifest生效)webSettings.setAllowFileAccess(true);/*允许跨域访问*/webSettings.setAllowUniversalAccessFromFileURLs(true);shopWebView.canGoBack();shopWebView.setWebChromeClient(new WebChromeClient());
2,视频播放不出来
需要配置:
android:hardwareAccelerated="true" 启用硬件加速
3,视频预览图片加载不出来:
这是Android5.0 WebView中Http和Https混合问题,在Android5.0 以及以上的系统,当WebView加载的链接为Https开头,但是链接里面的内容,比如图片为Http链接,这时候,图片就会加载不出来。
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){getSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);}
在Android5.0以下,默认是采用的MIXED_CONTENT_ALWAYS_ALLOW模式,即总是允许WebView同时加载Https和Http;而从Android5.0开始,默认用MIXED_CONTENT_NEVER_ALLOW模式,即总是不允许WebView同时加载Https和Http。
虽然官网给出的建议是,为了安全考虑,使用MIXED_CONTENT_NEVER_ALLOW模式,但是在实际引用中,当我们的服务器已经升级到Https,但是一些页面的资源是第三方的,我们不能要求第三方也都升级到Https,所以我们只能根据系统版本,用代码去设置加载模式为MIXED_CONTENT_ALWAYS_ALLOW。
更多相关文章
- 《Android开发技术周报》笔记
- Android(安卓)第三方组件Volley加载网络
- Android(安卓)通过软引用实现图片缓存,防止内存溢出
- Android加载网络图片并保存到系统相册
- Android(安卓)N新特性
- 三行Android代码实现白天夜间模式流畅切换
- Android绘图之Shader
- Android(安卓)设计中常用的设计模式
- 使用ContentProvider管理照片