事件
事件系统允许你向后端发出事件并侦听来自后端的事件。
当 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 | 事件名称。只能包含字母数字字符、- 、/ 、: 和 _ 。 |
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<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 | 事件名称。只能包含字母数字字符、- 、/ 、: 和 _ 。 |
handler | EventCallback <T > | - |
返回:Promise
<UnlistenFn
>
一个解析为取消监听事件的函数的 Promise。请注意,如果监听器超出范围(例如,卸载组件),则需要移除监听器。