本地 HTML 与 ZIP 打包:把自己的前端项目装进 APK
和离线包的区别
「HTML」类型的输入不是 URL,而是你已经有的本地 HTML 文件或 ZIP 压缩包。这覆盖了几种常见场景:
- 自己写了一个静态网站(HTML/CSS/JS),想打包成 APK
- 用静态站点生成器(Jekyll、Hugo、Gatsby 等)产出了一堆 HTML 文件
- 用 wget / HTTrack 抓过站,不想让 WebToApp 重新跑一遍
- 有一个现成的 Web 项目目录(React/Vite 等已构建产物除外,那些用「前端」类型)
创建流程
- 打开类型选择器,点「HTML」卡片
- 在专属表单里选择本地 HTML 目录或 ZIP 文件
- 指定入口页面(默认 index.html)
- 在基本信息里填应用名称和图标
- 选择文件协议加载或 localhost 托管模式
- 点击保存
两种加载模式
文件协议(默认)
WebView 直接用 file:// 协议加载 APK 内部 assets/ 目录下的 HTML 文件。优点是简单直接,APK 体积最小。缺点是某些现代前端框架的模块系统不支持 file:// 协议(比如 ES modules 需要 http:// 或 https:// 协议)。
localhost 托管
WebToApp 在 APK 内部起一个本地 HTTP 服务,把你的 HTML 发布成 http://127.0.0.1:xxxx/。WebView 访问 localhost。这种方式能完整支持现代前端模块系统(ES modules、模块联邦等),但 APK 体积略大(多了一个 HTTP server 进程)。
什么时候切 localhost:
- 页面里用了 ES modules 或 import 语句
- 有 fetch() / XMLHttpRequest 请求需要同源策略
- 文件协议加载时出现跨域错误或模块加载失败
ZIP 包支持
直接选一个 ZIP 文件也可以,WebToApp 会在构建时解压。ZIP 包的根目录就是你的站点根目录,入口文件可以是 index.html 或其他名称。
资源加密
和离线包一样,HTML 类型支持 AES-256-GCM 加密打包进 APK 的资源。启用后 HTML/CSS/JS 都会被加密,WebView 内核解密后加载。