跳至主要内容

事件

事件系统允许你向后端发出事件并侦听来自后端的事件。

tauri.conf.json 中的 build.withGlobalTauri 设置为 true 时,也可以通过 window.__TAURI__.event 访问此软件包。

枚举

TauriEvent

: 1.1.0

枚举成员

名称类型定义于
"tauri://update"event.ts:34
"tauri://update-download-progress"event.ts:38
"tauri://update-install"event.ts:36
"tauri://menu"event.ts:33
"tauri://update-status"event.ts:37
"tauri://update-available"event.ts:35
"tauri://blur"event.ts:27
"tauri://close-requested"event.ts:23
"tauri://window-created"event.ts:24
"tauri://destroyed"event.ts:25
"tauri://file-drop"event.ts:30
"tauri://file-drop-cancelled"event.ts:32
"tauri://file-drop-hover"event.ts:31
"tauri://focus"event.ts:26
"tauri://move"event.ts:22
"tauri://resize"event.ts:21
"tauri://scale-change"event.ts:28
"tauri://theme-changed"event.ts:29

接口

Event<T>

类型参数

  • T

属性

event

event: EventName

事件名称

定义于: helpers/event.ts:12

id

id: number

用于取消监听的事件标识符

定义于: helpers/event.ts:16

payload

payload: T

事件有效负载

定义于: helpers/event.ts:18

windowLabel

windowLabel: string

发出此事件的窗口的标签。

定义于: helpers/event.ts:14

类型别名

EventCallback<T>

EventCallback<T>: (event: Event<T>) => void

类型参数

  • T

类型声明

(event: Event<T>): void

参数

名称类型
事件Event<T>

返回:void

定义于: helpers/event.ts:21

EventName

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

定义于: event.ts:15

UnlistenFn

UnlistenFn: () => void

类型声明

(): void

返回:void

定义于: helpers/event.ts:23

函数

emit

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

向后端和所有 Tauri 窗口发出事件。

示例

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

: 1.0.0

参数

名称类型说明
事件string事件名称。只能包含字母数字字符、-/:_
payload?unknown-

返回: Promise<void>

listen

listen<T>(event: EventName, handler: EventCallback<T>): Promise<UnlistenFn>

监听事件。该事件可以是全局事件,也可以是窗口特定事件。请参阅 windowLabel 以检查事件源。

示例

import { listen } from '@tauri-apps/api/event';
const unlisten = await listen<string>('error', (event) => {
console.log(`Got error in window ${event.windowLabel}, 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

类型参数

  • T

参数

名称类型说明
事件EventName事件名称。只能包含字母数字字符、-/:_
handlerEventCallback<T>事件处理程序回调。

返回:Promise<UnlistenFn>

一个解析为取消监听事件的函数的 Promise。请注意,如果监听器超出范围(例如,卸载组件),则需要移除监听器。

once

once<T>(event: EventName, handler: EventCallback<T>): Promise<UnlistenFn>

监听一次性事件。有关更多信息,请参阅 listen

示例

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

类型参数

  • T

参数

名称类型说明
事件EventName事件名称。只能包含字母数字字符、-/:_
handlerEventCallback<T>-

返回:Promise<UnlistenFn>

一个解析为取消监听事件的函数的 Promise。请注意,如果监听器超出范围(例如,卸载组件),则需要移除监听器。