event
事件系统允许您向后端发送事件并监听来自后端的事件。
当 app.withGlobalTauri
在 tauri.conf.json
中设置为 true
时,也可以通过 window.__TAURI__.event
访问此包。
枚举
TauriEvent
自
1.1.0
枚举成员
DRAG_DROP
DRAG_DROP: "tauri://drag-drop";
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L62
DRAG_ENTER
DRAG_ENTER: "tauri://drag-enter";
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L60
DRAG_LEAVE
DRAG_LEAVE: "tauri://drag-leave";
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L63
DRAG_OVER
DRAG_OVER: "tauri://drag-over";
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L61
WEBVIEW_CREATED
WEBVIEW_CREATED: "tauri://webview-created";
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L59
WINDOW_BLUR
WINDOW_BLUR: "tauri://blur";
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L55
WINDOW_CLOSE_REQUESTED
WINDOW_CLOSE_REQUESTED: "tauri://close-requested";
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L52
WINDOW_CREATED
WINDOW_CREATED: "tauri://window-created";
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L58
WINDOW_DESTROYED
WINDOW_DESTROYED: "tauri://destroyed";
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L53
WINDOW_FOCUS
WINDOW_FOCUS: "tauri://focus";
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L54
WINDOW_MOVED
WINDOW_MOVED: "tauri://move";
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L51
WINDOW_RESIZED
WINDOW_RESIZED: "tauri://resize";
Source: 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";
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L56
WINDOW_THEME_CHANGED
WINDOW_THEME_CHANGED: "tauri://theme-changed";
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L57
接口
Event<T>
类型参数
类型参数 |
---|
T |
属性
属性 | 类型 | 描述 | 定义于 |
---|---|---|---|
event | EventName | 事件名称 | Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L24 |
id | number | 用于取消监听的事件标识符 | Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L26 |
payload | T | 事件有效负载 | Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L28 |
选项
属性
属性 | 类型 | 描述 | 定义于 |
---|---|---|---|
target? | string | EventTarget | 要监听的事件目标,默认为 { kind: 'Any' } ,请参阅 EventTarget。如果提供字符串,则使用 EventTarget.AnyLabel。 | Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L43 |
类型别名
EventCallback()<T>
type EventCallback<T>: (event) => void;
类型参数
类型参数 |
---|
T |
参数
参数 | 类型 |
---|---|
event | Event <T > |
返回值
void
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L31
EventName
type EventName: `${TauriEvent}` | string & Record<never, never>;
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L35
EventTarget
type EventTarget: | object | object | object | object | object | object;
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L14
UnlistenFn()
type UnlistenFn: () => void;
返回值
void
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L33
函数
emit()
function emit(event, payload?): Promise<void>
向所有 目标 发送事件。
参数
参数 | 类型 | 描述 |
---|---|---|
event | string | 事件名称。 必须仅包含字母数字字符、- 、/ 、: 和 _ 。 |
payload ? | unknown | 事件有效负载。 |
返回值
Promise
<void
>
示例
import { emit } from '@tauri-apps/api/event';await emit('frontend-loaded', { loggedIn: true, token: 'authToken' });
自
1.0.0
Source: 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 | 目标 Window/Webview/WebviewWindow 的标签或原始 EventTarget 对象。 |
event | string | 事件名称。 必须仅包含字母数字字符、- 、/ 、: 和 _ 。 |
payload ? | unknown | 事件有效负载。 |
返回值
Promise
<void
>
示例
import { emitTo } from '@tauri-apps/api/event';await emitTo('main', 'frontend-loaded', { loggedIn: true, token: 'authToken' });
自
2.0.0
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L199
listen()
function listen<T>( event, handler,options?): Promise<UnlistenFn>
监听发送到任何 目标 的事件。
类型参数
类型参数 |
---|
T |
参数
参数 | 类型 | 描述 |
---|---|---|
event | EventName | 事件名称。 必须仅包含字母数字字符、- 、/ 、: 和 _ 。 |
handler | EventCallback <T > | 事件处理回调函数。 |
options ? | 选项 | 事件监听选项。 |
返回值
一个 Promise,它解析为一个取消监听事件的函数。请注意,如果您的侦听器超出范围(例如,组件被卸载),则需要删除侦听器。
示例
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
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L103
once()
function once<T>( event, handler,options?): Promise<UnlistenFn>
仅监听一次发送到任何 目标 的事件。
类型参数
类型参数 |
---|
T |
参数
参数 | 类型 | 描述 |
---|---|---|
event | EventName | 事件名称。 必须仅包含字母数字字符、- 、/ 、: 和 _ 。 |
handler | EventCallback <T > | 事件处理回调函数。 |
options ? | 选项 | 事件监听选项。 |
返回值
一个 Promise,它解析为一个取消监听事件的函数。请注意,如果您的侦听器超出范围(例如,组件被卸载),则需要删除侦听器。
示例
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
Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L147
© 2025 Tauri 贡献者。 CC-BY / MIT