用途:本技能面向 Tauri v2 应用,讲解如何实现系统托盘(通知区域)功能,覆盖托盘图标创建、托盘菜单、事件处理与运行时更新。
主要能力:启用托盘需在 src-tauri/Cargo.toml 的依赖中为 tauri 添加 features = ["tray-icon"]。可用 TrayIconBuilder 创建图标并设置 tooltip、menu;菜单支持普通菜单项、分隔符(PredefinedMenuItem::separator)与子菜单(Submenu)。可监听菜单项事件(on_menu_event)与托盘图标鼠标事件(on_tray_icon_event),按事件 id 匹配执行显示、隐藏、退出等操作。运行时可通过 tray_by_id 引用托盘,更新图标、提示文本,或调用 set_menu 替换整个菜单;菜单项支持 set_enabled、set_text。
使用方式:在 tauri::Builder 的 setup 中构建托盘与菜单,将事件处理附着在 build() 之前;用 TrayIconBuilder::with_id 指定 id 以便后续通过 app.tray_by_id("main-tray") 引用。命令函数用 #[tauri::command] 暴露给前端,并通过 invoke_handler(tauri::generate_handler![...]) 注册。
限制:资料注明 Enter、Move、Leave 事件在 Linux 上不受支持;Windows 与 macOS 支持全部托盘事件。资料未提供收费、价格或平台授权等其他信息。排障提示包括:确认已启用 tray-icon 特性、图标有效且可访问、build() 结果被保存;菜单未显示时检查 .menu(&menu) 与 menu_on_left_click;事件未触发时确认处理已附着且 tray id 匹配。