WebView更新v90.0.4430.82
在 WebView 内渲染内容似乎存在一些问题。加载正常,但在屏幕上显示却不行。看起来这是随机的,但却是一致的。有些 URL 渲染得很好,但其他 URL 在渲染时会不断导致应用程序崩溃。
在此更新之前一切正常。
Iv 甚至从“设置”->“应用程序”->“Android 系统 WebView”回滚了更新(在旧设备上禁用 Chrome)并再次正常工作。似乎又出现了问题,就像我们在 2020 年 3 月看到的那样。
这是崩溃报告:
E/chromium: [ERROR:aw_browser_terminator.cc(123)] Renderer process (11930) crash detected (code 5).
A/chromium: [FATAL:crashpad_client_linux.cc(667)] Render process (11930)'s crash wasn't handled by all associated webviews, triggering application crash.
A/libc: Fatal signal 5 (SIGTRAP), code -6 (SI_TKILL) in tid 10907 (oc.showcase.dev), pid 10907 (oc.showcase.dev)
WebView 已更新至 90.0.4430.91,但可以肯定的是,直到以后的版本才会引入此修复(Beta 和 Canary 尚未修复此问题,但将会引入)。
WebView 和整个应用程序崩溃的原因是由注入的 JavaScript 代码引起的。更换iframe
with document.write
JavaScript 中解决了这个问题,但这不是一个长期的解决方案。问题与iframe
位于 WebView 本身中。
另外,为了防止整个应用程序崩溃,因为这种崩溃是在 WebView 中渲染内容时引起的,您应该覆盖onRenderProcessGone
在你的CustomWebViewClient
这延伸了WebViewClient
。但是,同样,此解决方案将防止渲染问题和整个应用程序崩溃(仅适用于 API 级别 26+)。 API 26 以下没有类似的东西,因此,这个问题将导致整个应用程序崩溃,而不仅仅是 webView。
临时(以防万一)解决方案是检测 WebView 的版本代码,如果是有 bug 的版本代码(v90.0.4430.82),则根本不初始化 WebView,或者注入一些其他经过测试的 URL(HRML 与JS)不会导致崩溃。
您可以在这里找到错误单、描述和响应:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)