event

通过事件系统,您可以向后台发送事件,并监听来自后台的事件。

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

枚举

TauriEvent(Tauri事件)

自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 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版本起:

参数

名称 类型 描述
event string 事件名称. 必须只包含字母数字字符, -, /, : and _.
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('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

参数

名称 类型 描述
event EventName 事件名称。必须只包含字母数字字符, -, /, : and _.
handler EventCallback<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('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

参数

名称 类型 描述
event EventName 事件名称。必须只包含字母数字字符, -, /, : and _.
handler EventCallback<T> -

返回值: Promise<UnlistenFn>

promise返回的是取消事件监听的函数,请注意,如果您的监听器超出范围,例如组件被卸载,则需要移除监听器。