Skip to content

event

The event system allows you to emit events to the backend and listen to events from it.

This package is also accessible with window.__TAURI__.event when app.withGlobalTauri in tauri.conf.json is set to true.

Defined in: packages/api/src/event.ts:58

1.1.0

DRAG_DROP: "tauri://drag-drop";

Defined in: packages/api/src/event.ts:73

DRAG_ENTER: "tauri://drag-enter";

Defined in: packages/api/src/event.ts:71

DRAG_LEAVE: "tauri://drag-leave";

Defined in: packages/api/src/event.ts:74

DRAG_OVER: "tauri://drag-over";

Defined in: packages/api/src/event.ts:72

WEBVIEW_CREATED: "tauri://webview-created";

Defined in: packages/api/src/event.ts:70

WINDOW_BLUR: "tauri://blur";

Defined in: packages/api/src/event.ts:64

WINDOW_CLOSE_REQUESTED: "tauri://close-requested";

Defined in: packages/api/src/event.ts:61

WINDOW_CREATED: "tauri://window-created";

Defined in: packages/api/src/event.ts:67

WINDOW_DESTROYED: "tauri://destroyed";

Defined in: packages/api/src/event.ts:62

WINDOW_FOCUS: "tauri://focus";

Defined in: packages/api/src/event.ts:63

WINDOW_MOVED: "tauri://move";

Defined in: packages/api/src/event.ts:60

WINDOW_RESIZED: "tauri://resize";

Defined in: packages/api/src/event.ts:59

WINDOW_RESUMED: "tauri://resumed";

Defined in: packages/api/src/event.ts:69

WINDOW_SCALE_FACTOR_CHANGED: "tauri://scale-change";

Defined in: packages/api/src/event.ts:65

WINDOW_SUSPENDED: "tauri://suspended";

Defined in: packages/api/src/event.ts:68

WINDOW_THEME_CHANGED: "tauri://theme-changed";

Defined in: packages/api/src/event.ts:66

Defined in: packages/api/src/event.ts:30

Type Parameter
T
Property Type Description Defined in
event EventName Event name packages/api/src/event.ts:32
id number Event identifier used to unlisten packages/api/src/event.ts:34
payload T Event payload packages/api/src/event.ts:36

Defined in: packages/api/src/event.ts:46

Property Type Description Defined in
target? | string | EventTarget The event target to listen to, defaults to { kind: 'Any' }, see EventTarget. If a string is provided, EventTarget.AnyLabel is used. packages/api/src/event.ts:52

type EventCallback<T> = (event) => void;

Defined in: packages/api/src/event.ts:39

Type Parameter
T
Parameter Type
event Event<T>

void


type EventName =
| `${TauriEvent}`
| string & Record<never, never>;

Defined in: packages/api/src/event.ts:44


type EventTarget =
| {
kind: "Any";
}
| {
kind: "AnyLabel";
label: string;
}
| {
kind: "App";
}
| {
kind: "Window";
label: string;
}
| {
kind: "Webview";
label: string;
}
| {
kind: "WebviewWindow";
label: string;
};

Defined in: packages/api/src/event.ts:22


type UnlistenFn = () => void;

Defined in: packages/api/src/event.ts:42

void

function emit<T>(event, payload?): Promise<void>;

Defined in: packages/api/src/event.ts:188

Emits an event to all targets.

Type Parameter
T
Parameter Type Description
event string Event name. Must include only alphanumeric characters, -, /, : and _.
payload? T Event payload.

Promise<void>

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

1.0.0


function emitTo<T>(
target,
event,
payload?): Promise<void>;

Defined in: packages/api/src/event.ts:210

Emits an event to all targets matching the given target.

Type Parameter
T
Parameter Type Description
target | string | EventTarget Label of the target Window/Webview/WebviewWindow or raw EventTarget object.
event string Event name. Must include only alphanumeric characters, -, /, : and _.
payload? T Event payload.

Promise<void>

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

2.0.0


function listen<T>(
event,
handler,
options?): Promise<UnlistenFn>;

Defined in: packages/api/src/event.ts:115

Listen to an emitted event to any target.

Type Parameter
T
Parameter Type Description
event EventName Event name. Must include only alphanumeric characters, -, /, : and _.
handler EventCallback<T> Event handler callback.
options? Options Event listening options.

Promise<UnlistenFn>

A promise resolving to a function to unlisten to the event. Note that removing the listener is required if your listener goes out of scope e.g. the component is unmounted.

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


function once<T>(
event,
handler,
options?): Promise<UnlistenFn>;

Defined in: packages/api/src/event.ts:159

Listens once to an emitted event to any target.

Type Parameter
T
Parameter Type Description
event EventName Event name. Must include only alphanumeric characters, -, /, : and _.
handler EventCallback<T> Event handler callback.
options? Options Event listening options.

Promise<UnlistenFn>

A promise resolving to a function to unlisten to the event. Note that removing the listener is required if your listener goes out of scope e.g. the component is unmounted.

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


© 2026 Tauri Contributors. CC-BY / MIT