应用内网页打不开的原因
本篇讲「为什么很多应用里点开的网页会白屏、转圈或闪退」:多数故障的根源不在应用本身,而在同一个系统渲染组件上。相关文档:更新失败的排查顺序。
在邮箱里点开一封图文邮件、在社交软件里点开一条外部链接、在银行应用里翻一份活动说明——这些页面都没有跳出当前应用,而是直接嵌在界面里显示。负责把这类页面渲染出来的,是安卓系统里一个叫 Android System WebView 的组件:它基于 Chromium 内核,相当于给每个应用内置了一台小型浏览器引擎。
正因为所有应用共享这一条渲染通道,它出问题时,症状会散布在一堆看起来毫不相干的应用里:
- 邮件的图文正文只剩空白框;
- 社交、社区类应用点外链后页面一直转圈;
- 银行、购物类应用的协议页或专题页一点就闪退;
- 个别应用的登录、验证页面加载不出来。
怎么确认是组件的问题
- 打开系统「设置 → 应用」,在完整列表里搜「WebView」;
- 看它的状态:是否显示「已停用」、版本号是否停留在很久以前;
- 对比故障出现的时机:如果多台应用同时出现「网页区域打不开、应用本体还能用」的情况,基本可以锁定渲染组件。
修复方向
- 组件被停用的,重新启用即可;
- 版本过旧的,到应用商店更新到最新渲染引擎;
- 商店更新反复失败的,按排查顺序逐项处理,见更新失败的排查顺序。
渲染引擎与 Chrome 浏览器在不同安卓版本上的分工并不相同,这也是很多教程说法不一的原因。更多版本演进细节与完整的组件解析,可参考这份 webview 组件速查手册:https://webview.kook.yoga/。