跳到内容
Tauri

托盘

托盘图标类及相关方法。此类型构造函数为私有,您应该改用静态方法 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');
属性修饰符类型描述定义于
id公共字符串与此托盘图标关联的 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#L309

close(): Promise<void>

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

Promise<void>

Resource.close

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

setIcon(icon): Promise<void>

设置新的托盘图标。如果提供 null,将删除图标。

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

[dependencies]
tauri = { version = "...", features = ["...", "image-png"] }
参数类型
图标| 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>

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

参数类型
作为模板布尔值 (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:不支持。
参数类型
左键单击布尔值 (boolean)

Promise<void>

请改用 TrayIcon.setShowMenuOnLeftClick

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

setShowMenuOnLeftClick(onLeft): Promise<void>

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

平台特定

  • Linux:不支持。
参数类型
左键单击布尔值 (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>

为此托盘图标设置工具提示。

平台特定

  • Linux: 除非同时有图标,否则标题将不会显示。标题对于数字和其他频繁更新的信息很有用。通常,除非用户请求,否则不应显示它,因为它可能会占用用户面板上的大量空间。这可能不会在所有可视化中显示。
  • Windows: 不支持
参数类型
标题null | string

Promise<void>

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

setTooltip(tooltip): Promise<void>

为此托盘图标设置工具提示。

平台特定

  • Linux: 不支持
参数类型
工具提示null | string

Promise<void>

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

setVisible(visible): Promise<void>

显示或隐藏此托盘图标。

参数类型
可见布尔值 (boolean)

Promise<void>

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

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

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

参数类型
ID字符串

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 引用,这可能会导致托盘图标消失。

参数类型
ID字符串

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?字符串托盘图标 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?字符串托盘图标临时目录路径。仅限 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?字符串托盘标题 平台特定 - Linux: 除非有图标,否则标题不会显示。标题对于数字和其他频繁更新的信息很有用。通常,除非用户请求,否则不应显示它,因为它可能会占用用户面板上的大量空间。这可能不会在所有可视化中显示。 - Windows: 不支持。来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L104
tooltip?字符串托盘图标工具提示来源: 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;
名称类型描述定义于
按钮MouseButton触发此事件的鼠标按钮。来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L35
按钮状态MouseButtonState触发此事件时鼠标按钮的状态。来源: 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
名称类型描述定义于
ID字符串触发此事件的托盘图标 ID。来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L23
位置物理位置触发此事件的点击的物理位置。来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L25
矩形对象托盘图标的位置和大小。来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L27
rect.position物理位置-来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L28
rect.size物理大小-来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L29
类型T托盘图标事件类型来源: 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


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