一个 Vue 应用,三种家园:基于 Tauri 的桌面端、基于 Capacitor 的 Android 端以及 Web 端。
作者构建了一个单一的 Vue.js 应用,用作桌面客户端、Android 应用和 Web 应用。这种方法实现了所有目标平台上的统一 UI、API 调用和 OAuth 流程。桌面端采用 Tauri 搭配 Rust 后端,Android 端则选用 Capacitor,同时也提供纯 Web 版本。一个主要挑战是跨平台编译不可行,每个平台构建时都需要其原生工具链。旧版 Windows 可能缺少 WebView2,因此需要在安装程序中捆绑引导程序。打包应用中的 OAuth 重定向处理复杂,需使用自定义方案或深度链接,而非传统的 Web 服务器回调。Rust 发布二进制文件的大小可通过特定的 Cargo.toml 优化(如 panic="abort" 和链接时优化)来减小。尽管存在这些复杂性,作者认为该方法值得采用,以避免维护多个独立项目。作者推荐 Web 开发者在面向桌面和移动端时采用 Vue 结合 Tauri 和 Capacitor 的方案,并建议充分考虑打包和 OAuth 的复杂性。作者还提供此类开发的自由职业服务。