跳到内容
Tauri

tray

托盘图标类及相关方法。此类型的构造函数是私有的,你应该使用静态方法 TrayIcon.new

与 Rust 不同,JavaScript 没有办法在对象被垃圾回收时运行清理代码,但此托盘图标会在 Tauri 应用退出时被清理。不过,如果你想提前清理此对象,你需要调用 TrayIcon.close

import { TrayIcon } from '@tauri-apps/api/tray';
const tray = await TrayIcon.new({ tooltip: 'awesome tray tooltip' });
tray.set_tooltip('new tooltip');
属性修饰符类型描述定义于
idpublicstring与此托盘图标关联的 ID。源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L160

get rid(): number

数字

Resource.rid

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L318

close(): Promise<void>

销毁并从内存中清理此资源。您不应再对此对象调用任何方法,并应放弃对它的任何引用。

Promise<void>

Resource.close

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/core.ts#L330

setIcon(icon): Promise<void>

设置一个新的托盘图标。如果传入 null,将移除该图标。

请注意,您可能需要 image-icoimage-png Cargo 功能才能使用此 API。要启用它,请更改您的 Cargo.toml 文件

[dependencies]
tauri = { version = "...", features = ["...", "image-png"] }
参数类型
icon| null | string | Uint8Array | number[] | ArrayBuffer | Image

Promise<void>

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L224

setIconAsTemplate(asTemplate): Promise<void>

将当前图标设置为模板 (template)仅限 macOS

参数类型
asTemplate布尔值 (boolean)

Promise<void>

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L292

setMenu(menu): Promise<void>

设置一个新的托盘菜单。

平台特定

  • Linux:一旦设置了菜单,就无法将其移除,因此 null 无效
参数类型
menunull | Submenu | Menu

Promise<void>

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L241

setMenuOnLeftClick(onLeft): Promise<void>

禁用或启用左键点击时显示托盘菜单。

平台特定

  • Linux:不支持。
参数类型
onLeft布尔值 (boolean)

Promise<void>

请改用 TrayIcon.setShowMenuOnLeftClick

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L308

setShowMenuOnLeftClick(onLeft): Promise<void>

禁用或启用左键点击时显示托盘菜单。

平台特定

  • Linux:不支持。
参数类型
onLeft布尔值 (boolean)

Promise<void>

2.2.0

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L324

setTempDirPath(path): Promise<void>

设置托盘图标临时目录路径。仅限 Linux

在 Linux 上,我们需要将图标写入磁盘,通常是 $XDG_RUNTIME_DIR/tray-icon$TEMP/tray-icon

参数类型
pathnull | string

Promise<void>

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L287

setTitle(title): Promise<void>

设置此托盘图标的工具提示 (tooltip)。

平台特定

  • Linux: 除非同时存在图标,否则不会显示标题。标题适用于数字和其他频繁更新的信息。通常情况下,除非用户主动请求,否则不建议显示它,因为它会占用用户面板上的大量空间。在所有可视化界面中可能并不都会显示。
  • Windows: 不支持
参数类型
标题null | string

Promise<void>

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L272

setTooltip(tooltip): Promise<void>

设置此托盘图标的工具提示 (tooltip)。

平台特定

  • Linux: 不支持
参数类型
tooltipnull | string

Promise<void>

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L256

setVisible(visible): Promise<void>

显示或隐藏此托盘图标。

参数类型
visible布尔值 (boolean)

Promise<void>

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L277

static getById(id): Promise<null | TrayIcon>

使用提供的 ID 获取托盘图标。

参数类型
IDstring

Promise<null | TrayIcon>

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L168

static new(options?): Promise<TrayIcon>

创建一个新的 TrayIcon

平台特定

  • Linux: 有时如果不设置菜单,图标将不可见。设置一个空的 Menu 就足够了。
参数类型
选项?TrayIconOptions

Promise<TrayIcon>

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L192

static removeById(id): Promise<void>

从 Tauri 的内部状态中移除具有指定 ID 的托盘图标。

请注意,如果图标未在其他地方克隆或被 JS 引用,这可能会导致托盘图标消失。

参数类型
IDstring

Promise<void>

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L180

TrayIcon 创建选项

属性类型描述定义于
action?(event: TrayIconEvent) => void托盘图标事件的处理程序。源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L137
icon?| string | Uint8Array | number[] | ArrayBuffer | Image托盘图标,可以是图标字节或图标文件的路径。请注意,你可能需要 image-icoimage-png Cargo 功能才能使用此 API。要启用它,请修改你的 Cargo.toml 文件: [dependencies] tauri = { version = "...", features = ["...", "image-png"] }源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L89
iconAsTemplate?布尔值 (boolean)将图标用作模板仅限 macOS源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L115
id?string托盘图标 ID。如果未定义,将分配一个随机 ID源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L76
menu?Submenu | Menu托盘图标菜单源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L78
menuOnLeftClick?布尔值 (boolean)是否在左键点击时显示托盘菜单,默认为 true。平台特定:- Linux:不支持。已弃用,请改用 TrayIconOptions.showMenuOnLeftClick源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L125
showMenuOnLeftClick?布尔值 (boolean)是否在左键点击时显示托盘菜单,默认为 true。平台特定:- Linux:不支持。从 2.2.0 版本开始源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L135
tempDirPath?string托盘图标临时目录路径。仅限 Linux。在 Linux 上,我们需要将图标写入磁盘,通常是 $XDG_RUNTIME_DIR/tray-icon$TEMP/tray-icon源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L111
title?string托盘标题。平台特定: - Linux: 除非同时存在图标,否则不会显示标题。标题适用于数字和其他频繁更新的信息。通常情况下,除非用户主动请求,否则不建议显示它,因为它会占用用户面板上的大量空间。在所有可视化界面中可能并不都会显示。 - Windows: 不支持。源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L104
tooltip?string托盘图标工具提示源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L91

type MouseButton: "Left" | "Right" | "Middle";

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L11


type MouseButtonState: "Up" | "Down";

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L10


type TrayIconClickEvent: object;
名称类型描述定义于
buttonMouseButton触发此事件的鼠标按钮。源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L35
buttonStateMouseButtonState触发此事件时的鼠标按钮状态。源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L37

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L33


type TrayIconEvent:
| TrayIconEventBase<"Click"> & TrayIconClickEvent
| TrayIconEventBase<"DoubleClick"> & Omit<TrayIconClickEvent, "buttonState">
| TrayIconEventBase<"Enter">
| TrayIconEventBase<"Move">
| TrayIconEventBase<"Leave">;

描述托盘图标事件。

平台特定

  • Linux:不支持。即使显示了图标,该事件也不会发出,但右键点击图标时仍会显示上下文菜单。

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L48


type TrayIconEventBase<T>: object;
类型参数
T 继承自 TrayIconEventType
名称类型描述定义于
IDstring触发此事件的托盘图标 ID。源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L23
位置PhysicalPosition触发此事件的物理点击位置。源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L25
rect对象托盘图标的位置和大小。源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L27
rect.positionPhysicalPosition-源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L28
rect.sizePhysicalSize-源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L29
typeT托盘图标事件类型源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L21

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L19


type TrayIconEventType:
| "Click"
| "DoubleClick"
| "Enter"
| "Move"
| "Leave";

源码: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L12


© 2026 Tauri 贡献者。CC-BY / MIT