解决Android中WebView视频无法播放的问题
原文:http://www.itxiechao.com/330.html
解决Android中WebView LayoutAlgorithm.SINGLE_COLUMN导致视频无法播放的问题
相信做Android开发的朋友都知道使用WebView 中的webview.loadUrl(url);
或webview.loadDataWithBaseURL(“about:blank”, htmlContent, “text/html”, “utf-8″, null);
来显示html内容,但如果html内容中包含图片,有可能会导致网页显示异常,会出现左右滚动条,或者图片太小或太大,反正不好看,这时候大家可能会使用:
1 2 | // 设置加载进来的页面自适应手机屏幕 webview.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
|
文章图片
标签中含有width和height属性,导致在小米3上面显示异常,也就是说之前写的LayoutAlgorithm.SINGLE_COLUMN没起作用,后来我又加入了这段代码:
1 2 3 4 5 6 | // 替换标签中含有width和height属性为width="100%" height="" try
{
htmlContent = htmlContent.replaceAll(
"width=\"([^\"]+)\""
,
"width=\"100%\""
);
htmlContent = htmlContent.replaceAll(
"height=\"([^\"]+)\""
,
""
);
}
catch
(Exception e) { } |
但是最近又有新的需求,需要在html中嵌入视频,发现在我们的APP中无法播放视频,在ios中却可以,所以我马上判断是我Android的代码有问题了,然后马上去检查代码,经过一个上午的奋斗,终于发现问题出在之前那段代码上面:
1 2 | // 设置加载进来的页面自适应手机屏幕 webview.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | private
void initWebViewData() {
webview.getSettings().setJavaScriptEnabled(true);
// 开启Javascript支持
webview.setScrollBarStyle(0);
// 滚动条风格,为0就是不给滚动条留空间,滚动条覆盖在网页上
webview.getSettings().setLoadsImagesAutomatically(true);
// 设置可以自动加载图片
webview.getSettings().setAppCacheEnabled(true);
// 应用可以有缓存
webview.getSettings().setDomStorageEnabled(true);
// 设置可以使用localStorage
webview.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
// 优先使用缓存
webview.getSettings().setAppCacheMaxSize(10 * 1024 * 1024);
// 缓存最多可以有10M
webview.getSettings().setAllowFileAccess(true);
// 可以读取文件缓存(manifest生效)
webview.getSettings().setPluginState(PluginState.ON);
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
// 加速WebView加载的方法
webview.getSettings().setRenderPriority(RenderPriority.HIGH);
// 提高渲染的优先级
//判断html中是否包含视频【解决Android中WebView视频无法播放的问题】
|
推荐阅读
- 热闹中的孤独
- parallels|parallels desktop 解决网络初始化失败问题
- android第三方框架(五)ButterKnife
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人