省流

华为设备的 Webview 更新是无解的。华为似乎硬编码了允许的 Webview, 所以只能使用官方的 Huawei Webview。
Tip: 本人大部分博客文章都会有省流部分。如果你的时间非常宝贵, 我希望你能尽快找到问题的解决办法。不过如果没有那么着急的话... 也可以来听听我的故事...? 我会很感激的。(>∀<☆)

⌲ 本文内容不构成任何产品购买倾向性建议
引子
前段时间在用 Ionic 开发移动端应用, 因为主要面向的是横屏场景, 于是就拿之前的 Huawei MatePad Pro 板子真机调试。(´ ∀ ` *)
众所周知, Ionic 调用的是系统 Webview。这个非常文明的举动, 让 Ionic 的生产安装包体积直降到 15MB 左右 (比 React Native 小多了! <(´д ` ')o )。但是这也就代表, 如果系统 Webview 版本过低... 会出一些奇怪的问题。
华为出厂预装 Harmony OS 的设备, 基本都用的是 Huawei Webview (华为定制版的 Android System Webview, 用的是华为自己的签名, 据说还加了一些 "反诈" 功能)。截止本文攥写日期 (03/27/2025), Huawei Webview 的最新版本是 15.0.4.326, 内核版本是极其上古的 Chromium 114 (。´-ω-`)...
这么旧的 Chromium 内核, 在第一屏测试的时候就出问题了。连 Albert Sans 的 TTF 字体都无法正常渲染。
因为签名私有, 所以没有其他渠道能够更新 Huawei Webview。只好试试看装 Google Android System Webview (`com.google.android.webview`) 或者 Android System Webview (`com.android.webview`) 了。
为了减少不必要的尝试, 我先看了看 framework-res.apk
里的 config_webview_packages.xml
, 这个里面是当前 ROM 允许的所有 Webview Provider。(如图 1-1-1)
△ 图 1-1-1 允许的 Webview
可以看到其实是有 (Google) Android System Webview 的。那么我们就安装一个试试吧。=w=
安装 Webview
从 APKMirror 下了最新版的 Google Android System Webview 和对应版本的 Trichrome Library, 安装到了板子上。满怀期待地打开开发人员选项, 结果...
△ 图 2-1-1 我 没 得 选
很奇怪的事发生了, Webview 选项里只有一个 Huawei Webview... 后来我又装了一下 Android System Webview, 但依然没有用。
试试 ADB?
我有点怀疑可能是华为在系统设置里过滤了选项, 毕竟 framework-res.apk
里的内容怎么可能骗人嘛。所以就 adb shell
了一下, 看看能不能通过这种方式更新 Webview 实现。
△ 图 3-1-1 ADB 也没有用
完全不起效果啊... 我有点想放弃了。但据说互联网是万能的, 我上网搜了搜...
△ 图 3-1-2 《三年前》...
算啦... 还是放弃挣扎吧。
总的来说
华为大概是把 com.huawei.webview
给 Hardcoded 进去了, 所以 framework-res.jar
不起任何作用。
只好自适应一下了... 后来把字体换成了 OTF 的, 渲染正常了。但总感觉旧版 Webview 用着好难受啊... TwT
以后买手机 / 平板的时候, 还是慎重一些吧...
华为除了 Webview 限制, 第三方应用安装要输密码也很离谱... 那个好像还是联网校验的, 哪天华为服务器宕机了, 应用也别想装了...