MV3 Chrome 扩展:从 Chrome 网上应用店直接装
这是什么能力
WebToApp 可以让未修改的 MV3 Chrome 扩展在导出 APK 的 WebView 里运行——不是移植版,是原版的 Manifest V3 扩展。通过模块市场可以直接从 Chrome 网上应用店实时搜索并安装。
内置了 BewlyCat 扩展作为工作示例。
能装哪些扩展
理论上所有 MV3 扩展都可以尝试。但以下类型扩展效果较好:
- 内容脚本类(Content Scripts):在目标页面注入 JS/CSS——这类扩展几乎直接可用
- Popup 页面:需要额外适配,但基础功能可用
- 后台服务类:部分可用,但 WebView 环境和 Chrome 的 service worker 环境不完全相同
以下类型扩展可能有问题:
- 需要 Chrome runtime 的高级 API(chrome.tabs、chrome.windows 等)
- 需要跨扩展通信的扩展
- WebRequest / DeclarativeNetRequest 高级用法
安装方式
- 从模块市场选择「MV3 Chrome 扩展」
- 搜索扩展名称,WebToApp 会从 Chrome 网上应用店拉取扩展信息
- 选择扩展,点击安装
- WebToApp 下载 CRX 包,提取 manifest.json 和资源
- 适配后注入到目标应用的 WebView 运行时
实际效果
安装了 MV3 扩展的 WebView 加载目标 URL 时:
- manifest.json 里声明的 content_scripts 会按 matches 规则注入
- 扩展的图标可以显示在 WebView 工具栏
- popup 页面可以弹出
效果接近在 Chrome 里使用扩展,但 WebView 环境下的边界比 Chrome 更窄。
和油猴脚本的对比
| 维度 | MV3 Chrome 扩展 | 油猴脚本 |
|---|---|---|
| 来源 | Chrome 网上应用店 / 本地 CRX | GreasyFork / OpenUserJS / 自写 |
| 格式 | 标准 Manifest V3 | 油猴脚本格式 |
| 功能范围 | 完整扩展能力 | 仅内容脚本 |
| 安装难度 | 更高(需要下载 CRX) | 更低(粘贴代码即可) |
| 推荐场景 | 成熟的社区扩展 | 自定义小改动 |
GeckoView 内核的限制
和去广告、油猴脚本一样,MV3 扩展注入能力只在系统 WebView 内核下实现。GeckoView 内核下这些功能没有对应实现。这也是构建对话框里选择引擎时需要考虑的一个关键因素。