跳至主要内容

事件

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

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

参数

名称类型描述
事件字符串事件名称。必须仅包含字母数字字符、-/:_
payload?未知-

返回值: 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。请注意,如果您的监听器超出范围(例如,组件已卸载),则需要删除监听器。