SuperAPI AI 工具集

tauri-app-system-tray

编程与开发

查看项目

更新于 10-16 07:54

技能介绍

用途

该技能用于在 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