用途:该技能面向 Tauri v2 开发,用于构建跨平台桌面和移动应用,前端可用任意 Web 框架负责 UI 与路由,后端使用 Rust 处理性能敏感逻辑与原生 API 调用。
主要能力:通过 IPC(invoke、事件、通道)连接 Rust 后端与 Web 前端;使用 lib.rs 存放共享逻辑以支持移动端构建;在 tauri.conf.json 中管理项目设置、图标、插件与构建命令;通过 src-tauri/capabilities/ 中的权限声明控制前端对后端命令和插件的访问,默认全部拒绝。
使用方式:定义命令时在 Rust 中使用 #[tauri::command],并在 tauri::Builder 的 invoke_handler 中通过 tauri::generate_handler![greet] 注册;前端从 @tauri-apps/api/core 导入 invoke 调用命令,如 await invoke<string>('greet', { name: 'World' })。状态使用线程安全类型(如 Mutex)定义,在 setup 中通过 app.manage(...) 注册,并在命令中以 tauri::State 访问。修改项目前需确认 tauri.conf.json 已配置 build.devUrl 与 build.frontendDist,capabilities/default.json 存在且包含必要权限。
关键规则与限制:未注册到 generate_handler![] 的命令会在前端静默失败;异步命令不能使用借用类型,须用 String 等所有权类型;不要阻塞主线程,重 I/O 应使用 async 或 std::thread::spawn;命令应返回 Result 并显式处理错误,错误类型需实现 serde::Serialize。前端应使用 @tauri-apps/api/core,@tauri-apps/api/tauri 路径自 v1 起已弃用。排查时注意参数命名(前端 camelCase、Rust snake_case)、权限缺失导致的 Permission denied、白屏时检查前端开发服务器与 devUrl 是否匹配,以及移动端需安装对应 Rust 目标并把逻辑放在 lib.rs。更详细的 IPC、权限和配置内容参见资料中提及的 ipc.md、capabilities.md 与 config.md。