跳到内容
Tauri

tray

TrayIcon

托盘图标类和相关方法。此类型构造函数是私有的,相反,您应该使用静态方法 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

访问器

rid
获取签名
get rid(): number
返回值

number

继承自

Resource.rid

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

方法

close()
close(): Promise<void>

销毁并从此内存中清理此资源。您不应再在此对象上调用任何方法,并应删除对其的任何引用。

返回值

Promise<void>

继承自

Resource.close

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

setIcon()
setIcon(icon): Promise<void>

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

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

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

Promise<void>

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

setIconAsTemplate()
setIconAsTemplate(asTemplate): Promise<void>

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

参数
参数类型
asTemplateboolean
返回值

Promise<void>

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

setMenu()
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()
setMenuOnLeftClick(onLeft): Promise<void>

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

平台特定

  • Linux:不支持。
参数
参数类型
onLeftboolean
返回值

Promise<void>

已弃用

请改用 TrayIcon.setShowMenuOnLeftClick

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

setShowMenuOnLeftClick()
setShowMenuOnLeftClick(onLeft): Promise<void>

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

平台特定

  • Linux:不支持。
参数
参数类型
onLeftboolean
返回值

Promise<void>

始于

2.2.0

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

setTempDirPath()
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()
setTitle(title): Promise<void>

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

平台特定

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

Promise<void>

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

setTooltip()
setTooltip(tooltip): Promise<void>

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

平台特定

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

Promise<void>

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

setVisible()
setVisible(visible): Promise<void>

显示或隐藏此托盘图标。

参数
参数类型
visibleboolean
返回值

Promise<void>

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

getById()
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

new()
static new(options?): Promise<TrayIcon>

创建一个新的 TrayIcon

平台特定

  • Linux:有时,除非设置了菜单,否则图标将不可见。设置一个空的 Menu 就足够了。
参数
参数类型
options?TrayIconOptions
返回值

Promise<TrayIcon>

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

removeById()
static removeById(id): Promise<void>

使用提供的 ID 从 Tauri 的内部状态中删除托盘图标。

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

参数
参数类型
idstring
返回值

Promise<void>

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

接口

TrayIconOptions

TrayIcon 创建选项

属性

属性类型描述定义在
action?(event: TrayIconEvent) => void托盘图标上事件的处理程序。来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L137
icon?| string | number[] | ArrayBuffer | Uint8Array<ArrayBufferLike> | 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

类型别名

MouseButton

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

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


MouseButtonState

type MouseButtonState: "Up" | "Down";

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


TrayIconClickEvent

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


TrayIconEvent

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


TrayIconEventBase<T>

type TrayIconEventBase<T>: object;

类型参数

类型参数
T 继承自 TrayIconEventType

类型声明

名称类型描述定义在
idstring触发此事件的托盘图标的 ID。来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L23
positionPhysicalPosition触发此事件的点击的物理位置。来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/tray.ts#L25
rectobject托盘图标的位置和大小。来源: 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


TrayIconEventType

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