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返回的是取消事件监听的函数,请注意,如果您的监听器超出范围,例如组件被卸载,则需要移除监听器。