用途:面向 Tauri v2+ 的跨平台应用开发,前端用 Web 技术、后端用 Rust。适用于配置 tauri.conf.json、编写 Rust 命令(#[tauri::command])、设置 IPC、状态管理、能力权限以及桌面与移动端构建。
主要能力与要点: 命令注册:所有命令须写入 tauri::generate_handler![],否则前端调用时静默失败。命令建议返回 Result<T, E> 以做错误处理。异步命令参数不能用借用类型(如 &str),须用拥有类型(String)。 项目结构:src-tauri/src/main.rs 仅作薄透传,调用 lib::run();全部应用逻辑放在 lib.rs。移动端构建要求此拆分,并用 #[cfg_attr(mobile, tauri::mobile_entry_point)] 标注 pub fn run()。 前端调用:使用 @tauri-apps/api/core 的 invoke(注意不是 v1 的 @tauri-apps/api/tauri)。 权限:Tauri v2 默认拒绝一切操作,须在 src-tauri/capabilities/default.json 显式声明权限(如 core:default);插件安装后不加对应权限字符串会导致运行时静默失败。 常用模式:用 Mutex<T> 管理共享状态并与 .manage() 的精确类型一致;事件用 app.emit 加 @tauri-apps/api/event 的 listen;高频流式传输用 tauri::ipc::Channel;v2 窗口用 tauri::WebviewWindow 与 app.get_webview_window("label")。 Serde 边界:命令参数须实现 Deserialize,返回类型须实现 Serialize;JS 侧 camelCase 与 Rust 侧 snake_case 自动转换;Option<T> 对应可选参数。 可选插件:tauri-plugin-fs、dialog、shell、http、store,均需在能力文件加入相应权限(如 fs:default)。 限制与注意:并非所有 API 和插件支持移动端,使用前应查插件平台支持矩阵;桌面专属项包括系统托盘 TrayIconBuilder、多窗口标签等;可用 #[cfg(desktop)] / #[cfg(mobile)] 区分平台逻辑。移动构建需先安装 Rust target,如 rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android,iOS 为 aarch64-apple-ios x86_64-apple-ios aarch64-apple-ios-sim。更新器生产环境需签名产物并使用 HTTPS。白屏常见原因是 devUrl 与前端开发服务器端口不匹配。依赖版本为 @tauri-apps/cli、@tauri-apps/api、tauri、tauri-build 均为 ^2。