用途
该技能用于在 Tauri v2 应用中创建和管理系统托盘图标,涵盖托盘菜单、点击事件处理以及跨平台行为差异。当用户提到系统托盘图标、状态栏图标、带操作(显示、隐藏、退出)的托盘菜单、平台特定的托盘行为差异,或出现“system tray”“tray icon”“tray menu”“status bar”“minimize to tray”等触发短语时,应始终使用本技能。
主要能力
- 在 Tauri builder 中配置带图标和菜单的系统托盘。
- 处理菜单事件,实现显示、隐藏、退出等操作。
- 处理托盘图标点击,切换窗口可见性(点击显示/隐藏)。
- 处理平台差异:macOS 使用左键打开菜单,Windows 使用右键;托盘定位方式因平台而异。
- 结合 positioner 插件实现精确的托盘相对窗口定位。
使用方式
在 Tauri builder 中配置托盘图标,示例代码:
use tauri::{tray::TrayIconBuilder, menu::{Menu, MenuItem}};
tauri::Builder::default()
.setup(|app| {
let show = MenuItem::with_id(app, "show", "Show", true, None::<&str>)?;
let quit = MenuItem::with_id(app, "quit", "Quit", true, None::<&str>)?;
let menu = Menu::with_items(app, &[&show, &quit])?;
TrayIconBuilder::new()
.icon(app.default_window_icon().unwrap().clone())
.menu(&menu)
.on_menu_event(|app, event| match event.id.as_ref() {
"show" => { app.get_webview_window("main").unwrap().show().unwrap(); }
"quit" => { app.exit(0); }
_ => {}
})
.build(app)?;
Ok(())
})
在 src-tauri/capabilities/default.json 中配置权限:
{ "permissions": ["core:default", "tray:default"] }
处理托盘图标点击以切换窗口可见性(点击显示/隐藏)。
处理平台差异:macOS 使用左键打开菜单,Windows 使用右键;托盘定位方式因平台而异。
结合 positioner 插件实现精确的托盘相对窗口定位。
输出
- 带图标和菜单的系统托盘设置。
- 菜单事件处理,包含显示/隐藏/退出操作。
- 平台特定行为指导。
参考
https://v2.tauri.app/learn/system-tray/
关键词
tauri system tray, tray icon, tray menu, status bar, minimize to tray