Skip to content

注:此文由 Kamas 'Iceberg' Lau 从英文翻译而成,原文可在此处查看。

Hero Image

Tauri v2 版本的相关工作已经进行了一年有余,如今已经准备好向稳定版本进发了!作为工作路线图的里程碑事件,我们已经发布了Tauri v2.0.0-beta.0。

Tauri v2 版本引入了移动端支持,以及社群要求的多项新功能。让我们大致了解以下主要变化:

移动端开发 ​

同时开发同一个应用的桌面端和移动端现在更加方便了。Tauri v2 版本在跨平台开发方面进展巨大——我们现已支持 Android 和 iOS。你可以将现有的桌面端程序无缝集成、分发为移动端,调用相应平台的原生 API,享受 Tauri 命令行工具带来的优秀开发体验。

权限控制 ​

v1 版本的白名单机制在监管前端对非必要的 API 调用方面是一个好工具,然而它的配置有失粗放,且缺乏对多窗口的支持。2.0.0-beta.0 版本带来了基于调用控制列表(Access Control List)进行命令调用的新方式,实现了命令放行,以及为特定窗口(甚至远端 URL)进行作用域限制。

新功能特性 ​

v2 版本更新包含了许多在 Tauri 社群中呼声颇高的功能:

进程间通信机制重做 ​

v1 版本中负责在 Rust 和 JavaScript 间传递消息的进程间通信(IPC)层采用了一个非常原始的 webview 接口,迫使我们将所有消息内容都序列化为字符串,且发送响应的速度超级慢。v2 版本中的新 IPC 机制实现基于自研的通信协议,其功能和性能近似于 webview 处理基于 HTTP 协议的常规通信(的机制),详见该 pull request。

此外,还新增了一个信道 API,可用于快速从 Rust 发送消息到应用前端。

多 webview 支持 ​

Tauri 现在支持在同一个窗口内添加多个 webview 了。这也是功能需求中得到高度参与的项目。

需要注意的是,这项功能当下还是一项未最终完成的特性,被隐藏在 unstable Cargo 特性标签下,我们还在与社群一起评议 API 设计方案。

控制菜单栏和状态栏图标的 JavaScript APIs ​

之前,你只能通过 Rust 来操作窗口菜单栏和状态栏的图标。现在你可以使用 JavaScript API 来更方便地操作了。此外,我们还为管理 macOS 的应用菜单添加了特定的 API。

上下文(右键)菜单 ​

原生上下文菜单是功能需求中最热门的候选项之一。借助 muda 的能力,这项功能终于在 Rust 和 JavaScript API 下可用了。

窗口(Window) APIs ​

(v2 版本)集成了一些新的 window API,为你的应用增加了可配置性。

移动设备 APIs ​

v2 版本带来了一些对于移动端原生 API 的支持。目前已经实现了通知、会话、NFC、条码识别、生物身份授权、粘贴板,以及深层链接等。更多的 API 会在稳定版本发布后追加。

质量审查 ​

为确保 v2 的安全性,我们目前正在(对项目)进行审查,与 v1 发布稳定版本时一样。

稳定性 ​

虽然 API 尚未进入稳定阶段,但后续不会发生重大变动。待审查及相应调整完成后,我们会(将 Beta 版本)提升为 RC 版本,继而尽快发布稳定版本,保持关注哦!