商家做了一个页面。等它到达你 WebView 里的客户时,上面已经搭了商家从未明确邀请的「乘客」——分析埋点、广告再营销像素、授权平台、标签管理器、热力图工具、聊天挂件。每一个都承诺增长或洞察。合在一起,它们向每次页面加载、每台设备、每位访客抽税。而在 WebView 里,没有什么能拦住它们。

开放网络的追踪税,现在进了你的 App

在开放网络上,浏览器扩展和平台级追踪防护能削掉一部分。进了 WebView,这些全都不存在。页面的第三方脚本原样运行,完整拥有那条唯一的 JavaScript 线程、网络、以及页面自己的上下文。Web Almanac 2024 的 JavaScript 章节测得:移动端页面的第三方 JS 中位数为 375 KB,第一方仅 168 KB——第三方比站点自己的代码重 2.2 倍。第三方 JS 从 255 KB(2020)涨到 292 KB(2022)再到 375 KB(2024)。第三方章节发现 92% 的页面至少加载一个第三方,脚本约占第三方请求的 30.5%;头部 1000 个站点每页中位数有 66 个第三方。你的 WebView 原封不动地继承了这一切,毫无过滤。

它首先是一笔性能税

每个第三方脚本,都是客户要买单的主线程工作。Web Almanac 的性能章节发现:承载用户行为(分析)脚本的移动端页面,只有 37% 的时间能维持良好的 INP(下一次绘制交互)得分——分析栈占满了本该响应点击的线程,于是结账按钮感觉卡、菜单反应慢。谷歌自己的指引也把标签管理器体积与更差的 INP 关联起来。而速度就是收入:谷歌与 Deloitte 的《Milliseconds Make Millions》发现,移动端加载时间改善 0.1 秒,零售转化率提升 8.4%。被别人家脚本撑爆的 WebView 页面,在商家自己的代码跑起来之前,就把这部分提升白白送了出去。

它也是一笔隐私与攻击面税

每个 SDK 都是一处数据外传点。同一份 Web Almanac 提到,引用的包含链中位数深 3 层,最深的观测链达到 2,285 层——第三方加载第三方、再加载第三方,远远超出商家的可见范围。在 GDPR 下,非必要 Cookie 与追踪器需要清晰、明确的授权行为;奥地利、法国、瑞典监管机构已裁定标准版 Google Analytics 部署违规,瑞典开出了 100 万欧元罚款。这些授权纪律,在 WebView 内都不会被自动执行。而每多一个脚本,就多一个可能卡住、失败或被攻陷的依赖——页面的加载序列,成了最慢、最不负责任的那个乘客的人质。

runtime 的解法

宿主自有 runtime 不会加载商家页面、然后指望第三方自觉。它在 WebView 层治理资源加载——Android 上的 shouldInterceptRequest 与 iOS 上的 WKURLSchemeHandler——于是单条策略就能放行必要的、把非关键标签推迟到空闲、并直接拦截已知追踪器和供应链脚本,且全程尊重用户的授权状态。分析可以合并后由服务端上报,整个类别的浏览器内追踪器被移除。第三方变成 runtime 强制执行的、受治理的边界,而不是页面向你的用户悄悄征收的税。

维度WebView宿主自有 runtime
脚本治理每个第三方都无过滤触发加载层允许/推迟/拦截
主线程被分析/标签管理器占满为页面自身 UX 保留
隐私追踪器外传;授权未执行授权感知;服务端分析
供应链深而不可见的包含链有界、可审计的依赖
攻击面每个 SDK 都是可乘之隙最小化、经审核的表面

本系列的贯穿主线是控制权。WebView 把你用户的页面——以及他们的数据——交给了你既看不见、也治理不了的开放网络追踪经济。runtime 让你划下边界。对于一个目录里全是别人页面、却在你 App 内运行的平台,这道边界,就是「快速、私密的体验」与「悄悄把客户租给最先加载的那个 SDK」之间的差别。

参考来源