当谈到将网页打包为应用程序的方法时,大多数人应该会第一时间想到 ElectronTauri 两个框架。

“臭名远扬”的 Electron 自带一个安装后会占用几百兆的 Chromium 内核,而基于 Rust 的 Tauri 则恰恰相反,它使用操作系统的 WebView,使得它看起来更轻量。

然而我个人并不认为 Tauri 是一个合适的选择。它的安装包非常小,但使用系统 WebView 也同时成为了最大的劣势:在不同操作系统和不同用户配置下,WebView 很容易出现各种兼容性问题。不同操作系统和 WebView 的渲染差异可以适配解决,但 Linux 和特殊用户环境下 WebView 运行环境本身的差异,这样的问题可不是开发者多试几次或写几个判断条件就能搞定的。

Tauri 就像一个不愿意去做婚检的媳妇,它运行起来有什么样的暗病,你是不知道的;而 Electron 虽然“彩礼”(存储空间)贵了一些,但你可以相信它确实可以在绝大多数设备上可控地运行。

如果想要减小应用体积,我觉得反而不如让你的应用直接打开一个浏览器窗口。这就有点像你花 200 块钱“买”到的媳妇,毕竟人家没有标榜自己多好,没有额外成本,渲染起来有点兼容性问题适配一下就无伤大雅了——至少你不用担心 WebView 是否正常工作,因为每个用户都有一个可以打开网页的浏览器。

相比起来,Tauri 在成为桌面应用和成为网页应用之间选择了“假装桌面应用”。除非你对窗口化和体积都有着非常强的要求,我个人不认为你应该选择这个需要担忧兼容性的框架。