核心 API 是 Tauri JavaScript API 的基础,它提供了前端(JavaScript)和后端(Rust)之间通信的基本机制。它提供了驱动所有其他 Tauri API 的基础 IPC(进程间通信)能力、序列化实用工具和资源管理。
本页介绍了核心 JavaScript API,它允许基于 Web 的 UI 与 Tauri 的 Rust 后端进行交互。有关窗口 API 的信息,请参阅 窗口 API,有关应用管理的信息,请参阅 App API。
核心 API 由几个关键的原始类型组成,这些类型能够实现 JavaScript 前端和 Rust 后端之间安全高效的通信。
来源: packages/api/src/core.ts1-334 crates/tauri/src/app/plugin.rs1-131 crates/tauri/scripts/core.js1-90
invoke 函数是 JavaScript 调用 Rust 命令的主要方法。它提供了一个基于 Promise 的接口,用于将请求发送到后端并接收响应。
invoke 系统会自动处理 JavaScript 和 Rust 之间的数据序列化,包括复杂类型和二进制数据。
来源: packages/api/src/core.ts241-247 crates/tauri/scripts/core.js56-88
Channel API 提供了一个双向通信机制,用于在 JavaScript 和 Rust 之间流式传输数据。它维护消息顺序,并在通道关闭时妥善处理清理工作。
Channel 类用于创建和管理这些双向流。
通道确保消息按正确的顺序处理,即使它们乱序到达。
来源: packages/api/src/core.ts76-153 packages/api/CHANGELOG.md5-22
Resource 类提供了一个对存储在 Rust 后端的资源的句柄。这些资源在主进程中持久存在,并且在不再需要时需要显式关闭。
资源通常由插件命令创建,然后通过其各自的 API 进行操作。
来源: packages/api/src/core.ts288-300
核心 API 提供特殊的序列化机制,可将 JavaScript 对象正确转换为可以安全传递给 Rust 的格式。
SERIALIZE_TO_IPC_FN 符号用作自定义类型可以实现的成员名称,以控制它们在跨 IPC 边界传递时如何被序列化。
这允许创建与 Rust 枚举变体清晰映射的 JavaScript 对象。
来源: packages/api/src/core.ts12-59 crates/tauri/scripts/process-ipc-message-fn.js1-46
核心 API 提供了与 Tauri 插件系统集成的工具。
addPluginListener 函数将事件监听器附加到插件,从而实现事件驱动的通信。
来源: packages/api/src/core.ts155-190
核心 API 包含用于检查和请求插件权限的函数。
这允许插件实现安全的权限处理。
来源: packages/api/src/core.ts192-210
convertFileSrc 函数将本地文件路径转换为可在 Webview 中使用的 URL。
这对于在应用 UI 中安全地加载本地文件至关重要。
来源: packages/api/src/core.ts252-281 crates/tauri/scripts/core.js13-20
transformCallback 函数将 JavaScript 回调转换为可以传递给 Rust 后端的标识符。
这主要由核心 API 内部使用,用于实现 Channel API 等功能。
来源: packages/api/src/core.ts69-74 crates/tauri/scripts/core.js22-41
核心 API 是 Tauri 插件架构的基础,支持模块化和可扩展的功能。
所有 Tauri 插件和 API 都基于核心 API 的 IPC 和序列化能力来创建更高级的功能。
来源: crates/tauri/build.rs16-219 examples/api/src-tauri/tauri.conf.json1-100 examples/api/src-tauri/capabilities/run-app.json1-69
核心 API 与 Tauri 的运行时紧密协作,提供前端和后端之间的无缝连接。
核心 API 抽象了跨平台通信的复杂性,允许开发人员使用与底层平台无关的一致 API。
来源: crates/tauri-runtime/src/lib.rs1-449 crates/tauri/src/window/mod.rs1-100 crates/tauri/src/test/mock_runtime.rs1-100
核心 API 提供了构建 Tauri 应用的基础工具,可将 Web 技术与原生功能无缝桥接。通过理解这些核心组件,开发人员可以有效地利用所有其他 Tauri API 并创建自己的集成。