Android 碰到一个 WebView 的怪问题

2015-10-18 11:34:11 +08:00
 jmania
通过 WebView 显示 json 中的 html,
一开始都可以正常显示,
但是打开了一个 Activity 后,
再回到有 WebVIew 的页面就不显示内容了,
而且是 app 中所有的都不显示了...
13004 次点击
所在节点    Android
19 条回复
qiayue
2015-10-18 11:40:54 +08:00
重新刷新了一下页面,你的页面没处理好
jmania
2015-10-18 12:18:58 +08:00
@qiayue 是重新刷新过了,
如果没有在 app 中打开新的 Activity 话是没有问题的.
mthli
2015-10-18 12:21:23 +08:00
没开硬件加速?
jmania
2015-10-18 12:44:29 +08:00
@mthli 之前打开了,
但是关闭后也是一样,
但是发现 打开新的 Activity 中的 WebView 有嵌入一个 youku 的视频后就会发生这个问题,
打开其它的 Activity 就没有问题...
monsoon
2015-10-18 12:55:06 +08:00
这是 WebView 的锅。
Android 5.0 后的 WebView 应该就没有这个 Bug ,小米的有些机子上好像就有这个 Bug (因为我的测试机不多,只有小米,这个 Bug 可能是 Android 某几个大版本的 WebView 的问题,或者是小米魔改 WebView 的锅)。

这个 Bug 是跟视频播放有关的 (因为那时候我发现这个 Bug 的时候,都是内嵌视频的页面,所以我很快地就发现了这个问题),后来我好像改了很多 WebView 的设置,然后成功了?

总之退 WebView ,保平安。
monsoon
2015-10-18 12:56:44 +08:00
也有可能是跟 WebView 的内存泄漏,或者是 硬件加速之类的锅,总之我是不知道了……
jmania
2015-10-18 13:38:58 +08:00
@monsoon 我手头只有一个华为的测试机,
其它的机器没有测试
jmania
2015-10-18 13:39:57 +08:00
@monsoon WebView 如何设置?
int64ago
2015-10-18 13:46:15 +08:00
onResume 处理?
int64ago
2015-10-18 13:50:07 +08:00
我觉得这个问题还是自己调试解决会比较方便
搞个 HTTP 代理抓包 + 启用 Chrome DevTools 调试

最后发现,多半是自己写搓了
jmania
2015-10-18 13:55:57 +08:00
@int64ago 每次都有取到数据的
tougee
2015-10-18 22:00:11 +08:00
遇到过类似的问题, webView 硬件加速导致渲染失败,配置改用软件加速
题主可以试试
LvWind
2015-10-19 00:25:11 +08:00
楼主如果对 apk 尺寸没有什么限制要求的话可以试试用 crosswalk 代替系统 WebView ,算是帮你解决各个厂各个版本的兼容性了。
jmania
2015-10-19 15:16:57 +08:00
@tougee 应该默认就是关闭硬件加速
jmania
2015-10-19 15:18:10 +08:00
@tougee 这个一点都不了解
tougee
2015-10-19 22:01:01 +08:00
@jmania 我指的是这样的: mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
jmania
2015-10-20 10:37:47 +08:00
@tougee 好像还是不行...
zhaohui318
2015-10-23 09:06:54 +08:00
4.4 的系统 webview 播视频有个 bug
jmania
2015-10-23 18:07:53 +08:00
@zhaohui318 有没有解决办法?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/228922

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX