html5转app能否离线取决于前端缓存策略而非打包工具选项;必须通过service worker主动缓存静态资源,并区分首屏、api、大文件等不同缓存策略,同时验证cache.addall()成功及处理网络状态降级。
HTML5 转 APP 本身不自动支持离线使用,是否能离线取决于你用的打包工具、资源缓存策略和 Web 内容本身的离线能力。
WebView 容器是否支持离线取决于底层引擎
绝大多数 HTML5 打包方案(如 Cordova、Capacitor、Tauri、uni-app、HBuilderX)最终都依赖系统 WebView 或 Chromium 内核加载网页。这些内核本身不保存网络请求历史,也不会自动缓存整个站点 —— 换句话说,index.html 一丢,APP 就白屏。
- Android 低版本 WebView(如 Android 4.4)对
Service Worker和Cache API支持极差,离线能力基本不可用 - iOS WKWebView 从 iOS 11.3 起才稳定支持
Service Worker,且需手动启用allowsInlineMediaPlayback等配置才不会意外中断脚本 - Electron / Tauri 类桌面方案可直接读取本地
file://路径,天然“离线”,但无法用fetch()请求同源接口(CORS 限制),需改用fs.promises.readFile或后端代理
离线必须靠前端主动缓存资源
没有 manifest.json(已废弃)或 Service Worker,光靠打包工具勾选“离线模式”毫无意义。