事件
事件系统允许您向后端发送事件并从中监听事件。
当在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 |
id | number | 用于取消监听的事件标识符 | 来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L26 |
payload | T | 事件负载 | 来源: 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>
向与给定目标匹配的所有 目标 发射事件。
参数
参数 | 类型 | 描述 |
---|---|---|
target | string | 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 |
参数
参数 | 类型 | 描述 |
---|---|---|
事件 | 事件名 | 事件名称。必须仅包含字母、数字、- 、/ 、: 和 _ 。 |
handler | EventCallback <T > | 事件处理程序回调。 |
options ? | 选项 | 事件监听选项。 |
返回值
一个解析为取消监听事件的函数的承诺。请注意,如果您的监听器退出作用域(例如,组件未卸载),则需要删除监听器。
示例
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 unmountedunlisten();
自从
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 |
参数
参数 | 类型 | 描述 |
---|---|---|
事件 | 事件名 | 事件名称。必须仅包含字母、数字、- 、/ 、: 和 _ 。 |
handler | EventCallback <T > | 事件处理程序回调。 |
options ? | 选项 | 事件监听选项。 |
返回值
一个解析为取消监听事件的函数的承诺。请注意,如果您的监听器退出作用域(例如,组件未卸载),则需要删除监听器。
示例
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 unmountedunlisten();
自从
1.0.0
来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L147
© 2025 Tauri 贡献者. CC-BY / MIT