我在我的应用程序中使用 WebViews,许多用户报告了一些问题。似乎它们中的大多数似乎都发生在 4.1.1 上,而不是之前。
配置:
- 硬件加速活动中的 Web 视图。
- 启用 JS,启用插件,启用文件访问,启用 DOM 存储。
- 自定义 WebChromeClient 和 WebViewClient。
- Webview 具有透明背景(0X00000000),但删除它似乎没有什么好的改进。
问题:
- 显示某些 URL 时随机黑屏:黑屏的意思,Activity 就这样死掉了,没有 JAVA 异常。
- 通常,日志在 glDrawArrays() 中报告一个 SIGSEGV,但也可能在其他地方(来自用户的信息不足)。
一种解决方法?
只需在 webview 上禁用硬件加速!是的,没有更多的黑屏,这是正确的......但是(即使我们认为这种解决方法就是如此,因为显示性能下降了很多):
一个新问题:
- 如果没有硬件加速,HTML5 视频 (youtube) 将无法正常工作:声音开始播放,但视频无法播放。
- 一种解决方案可能是捕获播放开始事件,使视频在 videoView 中播放,就像我们可以为全屏播放做的一样(使用 onShowCustomView,请参阅Playing HTML5 video on fullscreen in android webview)。不过,我目前无法捕捉到这样的事件。请注意,我不是 HTML 页面的所有者,并且无法更改 HTML 代码以在其中附加某种 Javascript 代码。
问题:
- 有没有人在许多设备上使用硬件加速 + webview 有同样的崩溃?如果是这样,你如何解决这个问题?
- 关于解决方法,deos有人知道如何解决这个问题吗?在 IOS 上这样做会很棒:点击不会尝试播放内联视频,而是打开视频应用程序。
谢谢阅读!