Rust Tauri 语法详解
一、.setup(|app| { ... }) 语法详解
在 Tauri 应用程序中,.setup(|app| { ... }) 是一个重要的配置方法,允许在应用程序启动时执行自定义初始化代码。该语法涉及 Rust 的多个核心概念:
1. 基本语法结构
.setup(|app| {
// 初始化代码
Ok(())
})
2. 核心组件解析
方法调用:
- 在
tauri::Builder对象上调用方法的标准 Rust 语法
闭包结构:
|app| { ... }
|app|为闭包参数列表,接收&tauri::App类型的应用实例- 闭包返回类型隐含
Result<(), Box<dyn Error>>
错误处理:
?操作符实现错误传播机制- 成功返回
Ok(()),失败返回Err(...)
3. 应用实例解析
.setup(|app| {
let _tray = TrayIconBuilder::new()
.icon(app.default_window_icon().unwrap().clone())
.on_tray_icon_event(|tray, event| match event {
TrayIconEvent::Click {
button: MouseButton::Left,
button_state: MouseButtonState::Up,
..
} => {
let app = tray.app_handle();
if let Some(window) = app.get_webview_window("main") {
let _ = window.show();
let _ = window.set_focus();
}
}
_ => {}
})
.build(app)?;
Ok(())
})
关键要素:
-
托盘图标构建:
TrayIconBuilder::new()创建构建器.icon()使用应用默认图标(通过unwrap().clone()处理)
-
事件处理机制:
- 嵌套闭包处理
TrayIconEvent - 模式匹配左键点击释放事件
app_handle()获取应用句柄- 窗口显示与焦点设置
- 嵌套闭包处理
-
特殊语法处理:
_tray变量前缀下划线避免未使用警告build(app)?的错误传播机制