跳转到内容

事件

事件系统允许您向后端发送事件并从中监听事件。

当在tauri.conf.json中将app.withGlobalTauri设置为true时,此包也可通过window.__TAURI__.event使用。

枚举

TauriEvent

自从

1.1.0

枚举成员

DRAG_DROP
DRAG_DROP: "tauri://drag-drop";

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

DRAG_ENTER
DRAG_ENTER: "tauri://drag-enter";

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

DRAG_LEAVE
DRAG_LEAVE: "tauri://drag-leave";

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

DRAG_OVER
DRAG_OVER: "tauri://drag-over";

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

WEBVIEW_CREATED
WEBVIEW_CREATED: "tauri://webview-created";

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

WINDOW_BLUR
WINDOW_BLUR: "tauri://blur";

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

WINDOW_CLOSE_REQUESTED
WINDOW_CLOSE_REQUESTED: "tauri://close-requested";

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

WINDOW_CREATED
WINDOW_CREATED: "tauri://window-created";

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

WINDOW_DESTROYED
WINDOW_DESTROYED: "tauri://destroyed";

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

WINDOW_FOCUS
WINDOW_FOCUS: "tauri://focus";

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

WINDOW_MOVED
WINDOW_MOVED: "tauri://move";

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

WINDOW_RESIZED
WINDOW_RESIZED: "tauri://resize";

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

WINDOW_SCALE_FACTOR_CHANGED
WINDOW_SCALE_FACTOR_CHANGED: "tauri://scale-change";

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

WINDOW_THEME_CHANGED
WINDOW_THEME_CHANGED: "tauri://theme-changed";

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

接口

Event

类型参数

类型参数
T

属性

属性类型描述定义在
event事件名事件名来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L24
idnumber用于取消监听的事件标识符来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L26
payloadT事件负载来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L28

选项

属性

属性类型描述定义在
target?string | EventTarget监听的事件目标,默认为 { kind: 'Any' },见 EventTarget。如果提供的是字符串,则使用 EventTarget.AnyLabel。来源:https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L43

类型别名

EventCallback()<T>

type EventCallback<T>: (event) => void;

类型参数

类型参数
T

参数

参数类型
事件Event<T>

返回值

void)

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


事件名

type EventName: `${TauriEvent}` | string & Record<never, never>;

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


事件目标

type EventTarget:
| object
| object
| object
| object
| object
| object;

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


UnlistenFn()

type UnlistenFn: () => void;

返回值

void)

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

函数

emit()

function emit(event, payload?): Promise<void>

向所有 目标 发射事件。

参数

参数类型描述
事件string事件名称。必须仅包含字母、数字、-/:_
payload?unknown事件负载。

返回值

Promise<void>

示例

import { emit } from '@tauri-apps/api/event';
await emit('frontend-loaded', { loggedIn: true, token: 'authToken' });

自从

1.0.0

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


emitTo()

function emitTo(
target,
event,
payload?): Promise<void>

向与给定目标匹配的所有 目标 发射事件。

参数

参数类型描述
targetstring | EventTarget目标(窗口、Webview、WebviewWindow)的标签,或原始的 EventTarget 对象。
事件string事件名称。必须仅包含字母、数字、-/:_
payload?unknown事件负载。

返回值

Promise<void>

示例

import { emitTo } from '@tauri-apps/api/event';
await emitTo('main', 'frontend-loaded', { loggedIn: true, token: 'authToken' });

自从

2.0.0

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


listen()

function listen<T>(
event,
handler,
options?): Promise<UnlistenFn>

监听任何 目标 发射的事件。

类型参数

类型参数
T

参数

参数类型描述
事件事件名事件名称。必须仅包含字母、数字、-/:_
handlerEventCallback<T>事件处理程序回调。
options?选项事件监听选项。

返回值

Promise<UnlistenFn>

一个解析为取消监听事件的函数的承诺。请注意,如果您的监听器退出作用域(例如,组件未卸载),则需要删除监听器。

示例

import { listen } from '@tauri-apps/api/event';
const unlisten = await listen<string>('error', (event) => {
console.log(`Got error, payload: ${event.payload}`);
});
// you need to call unlisten if your handler goes out of scope e.g. the component is unmounted
unlisten();

自从

1.0.0

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


once()

function once<T>(
event,
handler,
options?): Promise<UnlistenFn>

一次监听任何 目标 发射的事件。

类型参数

类型参数
T

参数

参数类型描述
事件事件名事件名称。必须仅包含字母、数字、-/:_
handlerEventCallback<T>事件处理程序回调。
options?选项事件监听选项。

返回值

Promise<UnlistenFn>

一个解析为取消监听事件的函数的承诺。请注意,如果您的监听器退出作用域(例如,组件未卸载),则需要删除监听器。

示例

import { once } from '@tauri-apps/api/event';
interface LoadedPayload {
loggedIn: boolean,
token: string
}
const unlisten = await once<LoadedPayload>('loaded', (event) => {
console.log(`App is loaded, loggedIn: ${event.payload.loggedIn}, token: ${event.payload.token}`);
});
// you need to call unlisten if your handler goes out of scope e.g. the component is unmounted
unlisten();

自从

1.0.0

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


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