Skip to content

webview

Provides APIs to create webviews, communicate with other webviews and manipulate the current webview.

Events can be listened to using Webview.listen:

import { getCurrentWebview } from "@tauri-apps/api/webview";
getCurrentWebview().listen("my-webview-event", ({ event, payload }) => { });

Creating child webviews — several webviews inside one window, via `new Webview(…)` — is an unstable API. It requires the unstable feature of the tauri crate:

[dependencies]
tauri = { version = "2", features = ["unstable"] }

Without it the plugin:webview|create_webview command returns an “unstable feature not supported” error. Everything else in this module — getCurrentWebview, getAllWebviews and the methods of an existing webview — works without the feature, and so does `new WebviewWindow(…)`, which creates a window with a single webview.

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

core:webview:default only enables the getters (allow-get-all-webviews, allow-webview-position, allow-webview-size and allow-internal-toggle-devtools). Every other method documents the permission it needs, which you must add to a capability yourself.

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L207

Create new webview or get a handle to an existing one.

Webviews are identified by a label a unique identifier that can be used to reference it later. It may only contain alphanumeric characters a-zA-Z plus the following special characters -, /, : and _.

Creating a webview with new Webview(...) adds a child webview to an existing window, which is an unstable API gated behind the unstable feature of the tauri crate:

[dependencies]
tauri = { version = "2", features = ["unstable"] }

Without it the call rejects with an “unstable feature not supported” error. Getting a handle to an existing webview (Webview.getByLabel, getCurrentWebview, getAllWebviews) and every method on this class work without the feature. To create a window that hosts a single webview, use WebviewWindow instead, which is stable.

import { Window } from "@tauri-apps/api/window"
import { Webview } from "@tauri-apps/api/webview"
const appWindow = new Window('uniqueLabel');
appWindow.once('tauri://created', async function () {
// `new Webview` Should be called after the window is successfully created,
// or webview may not be attached to the window since window is not created yet.
// loading embedded asset:
const webview = new Webview(appWindow, 'theUniqueLabel', {
url: 'path/to/page.html',
// create a webview with specific logical position and size
x: 0,
y: 0,
width: 800,
height: 600,
});
// alternatively, load a remote URL:
const webview = new Webview(appWindow, 'theUniqueLabel', {
url: 'https://github.com/tauri-apps/tauri',
// create a webview with specific logical position and size
x: 0,
y: 0,
width: 800,
height: 600,
});
webview.once('tauri://created', function () {
// webview successfully created
});
webview.once('tauri://error', function (e) {
// an error happened creating the webview
});
// emit an event to the backend
await webview.emit("some-event", "data");
// listen to an event from the backend
const unlisten = await webview.listen("event-name", e => { });
unlisten();
});

2.0.0

new Webview(
window,
label,
options
): Webview;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L255

Creates a new Webview.

Parameter Type Description
window Window the window to add this webview to.
label string The unique webview label. Must be alphanumeric: a-zA-Z-/:_.
options WebviewOptions The webview configuration, see WebviewOptions.

Webview

The Webview instance to communicate with the webview.

import { Window } from '@tauri-apps/api/window'
import { Webview } from '@tauri-apps/api/webview'
const appWindow = new Window('my-label')
appWindow.once('tauri://created', async function() {
const webview = new Webview(appWindow, 'my-label', {
url: 'https://github.com/tauri-apps/tauri',
// create a webview with specific logical position and size
x: 0,
y: 0,
width: 800,
height: 600,
});
webview.once('tauri://created', function () {
// webview successfully created
});
webview.once('tauri://error', function (e) {
// an error happened creating the webview
});
});

Requires the unstable Cargo feature on the tauri crate (tauri = { version = "2", features = ["unstable"] }), otherwise the call rejects with an “unstable feature not supported” error. It also requires the core:webview:allow-create-webview permission, which is not included in core:webview:default.

Property Type Description Defined in
label string The webview label. It is a unique identifier for the webview, can be used to reference it later. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L209
listeners Record<string, EventCallback<any>[]> Local event listeners. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L214
window Window The window hosting this webview. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L211

clearAllBrowsingData(): Promise<void>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L699

Clears all browsing data for this webview: cookies, localStorage, IndexedDB, caches and any other data the webview stores for the loaded origins.

Promise<void>

A promise indicating the success or failure of the operation.

import { getCurrentWebview } from '@tauri-apps/api/webview';
await getCurrentWebview().clearAllBrowsingData();

Requires the core:webview:allow-clear-all-browsing-data permission (not included in core:webview:default).

close(): Promise<void>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L513

Closes the webview.

Promise<void>

A promise indicating the success or failure of the operation.

import { getCurrentWebview } from '@tauri-apps/api/webview';
await getCurrentWebview().close();

Requires the core:webview:allow-webview-close permission (not included in core:webview:default).

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

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L393

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 { getCurrentWebview } from '@tauri-apps/api/webview';
await getCurrentWebview().emit('webview-loaded', { loggedIn: true, token: 'authToken' });

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

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L421

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 { getCurrentWebview } from '@tauri-apps/api/webview';
await getCurrentWebview().emitTo('main', 'webview-loaded', { loggedIn: true, token: 'authToken' });

hide(): Promise<void>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L618

Hide the webview.

Promise<void>

A promise indicating the success or failure of the operation.

import { getCurrentWebview } from '@tauri-apps/api/webview';
await getCurrentWebview().hide();

Requires the core:webview:allow-webview-hide permission (not included in core:webview:default).

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

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L327

Listen to an emitted event on this webview.

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

Promise<UnlistenFn>

A promise resolving to a function to unlisten to the event.

import { getCurrentWebview } from '@tauri-apps/api/webview';
const unlisten = await getCurrentWebview().listen<string>('state-changed', (event) => {
console.log(`Got error: ${payload}`);
});
// call unlisten when your handler goes out of scope e.g. the component is unmounted
unlisten();

The listener is removed automatically when this webview is destroyed, so you do not need to unlisten just because the webview is closing. Do call the returned function when the listener’s own scope ends, e.g. on page navigation or when a component unmounts.

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

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L365

Listen to an emitted event on this webview only once.

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

Promise<UnlistenFn>

A promise resolving to a function to unlisten to the event.

import { getCurrentWebview } from '@tauri-apps/api/webview';
const unlisten = await getCurrentWebview().once<null>('initialized', (event) => {
console.log(`Webview initialized!`);
});
// call unlisten when your handler goes out of scope e.g. the component is unmounted
unlisten();

The listener removes itself after the first event and is also removed automatically when this webview is destroyed. Do call the returned function if the listener’s own scope ends before the event arrives.

onDragDropEvent(handler): Promise<UnlistenFn>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L769

Listen to a file drop event. The listener is triggered when the user hovers the selected files on the webview, drops the files or cancels the operation.

Parameter Type
handler EventCallback<DragDropEvent>

Promise<UnlistenFn>

A promise resolving to a function to unlisten to the event.

import { getCurrentWebview } from "@tauri-apps/api/webview";
const unlisten = await getCurrentWebview().onDragDropEvent((event) => {
if (event.payload.type === 'over') {
console.log('User hovering', event.payload.position);
} else if (event.payload.type === 'drop') {
console.log('User dropped', event.payload.paths);
} else {
console.log('File drop cancelled');
}
});
// call unlisten when your handler goes out of scope e.g. the component is unmounted
unlisten();

When the debugger panel is open, the drop position of this event may be inaccurate due to a known limitation. To retrieve the correct drop position, please detach the debugger.

The listeners are removed automatically when this webview is destroyed. Do call the returned function when the listener’s own scope ends, e.g. on page navigation or when a component unmounts.

position(): Promise<PhysicalPosition>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L469

The position of the top-left hand corner of the webview’s client area relative to the top-left hand corner of the desktop.

Promise<PhysicalPosition>

The webview’s position, in physical pixels.

import { getCurrentWebview } from '@tauri-apps/api/webview';
const position = await getCurrentWebview().position();

Uses the core:webview:allow-webview-position permission, which is part of core:webview:default.

reparent(window): Promise<void>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L678

Moves this webview to the window with the given label.

Parameter Type Description
window | string | Window | WebviewWindow The target window, or its label.

Promise<void>

A promise indicating the success or failure of the operation.

import { getCurrentWebview } from '@tauri-apps/api/webview';
await getCurrentWebview().reparent('other-window');

Requires the core:webview:allow-reparent permission (not included in core:webview:default).

setAutoResize(autoResize): Promise<void>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L598

Sets whether the webview should automatically grow and shrink its size and position when the parent window resizes.

Parameter Type
autoResize boolean

Promise<void>

A promise indicating the success or failure of the operation.

import { getCurrentWebview } from '@tauri-apps/api/webview';
await getCurrentWebview().setAutoResize(true);

Requires the core:webview:allow-set-webview-auto-resize permission (not included in core:webview:default).

setBackgroundColor(color): Promise<void>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L729

Specify the webview background color.

Platform-specific:

  • macOS / iOS: Not implemented.
  • Windows:
    • On Windows 7, transparency is not supported and the alpha value will be ignored.
    • On Windows higher than 7: translucent colors are not supported so any alpha value other than 0 will be replaced by 255
Parameter Type Description
color Color | null The new background color, or null to reset it.

Promise<void>

A promise indicating the success or failure of the operation.

import { getCurrentWebview } from '@tauri-apps/api/webview';
await getCurrentWebview().setBackgroundColor('#2f2f2f');
// or with an RGBA tuple, or `null` to restore the default background
await getCurrentWebview().setBackgroundColor([47, 47, 47, 255]);

Requires the core:webview:allow-set-webview-background-color permission (not included in core:webview:default).

2.1.0

setFocus(): Promise<void>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L579

Bring the webview to front and focus.

Promise<void>

A promise indicating the success or failure of the operation.

import { getCurrentWebview } from '@tauri-apps/api/webview';
await getCurrentWebview().setFocus();

Requires the core:webview:allow-set-webview-focus permission (not included in core:webview:default).

setPosition(position): Promise<void>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L557

Sets the webview position.

Parameter Type Description
position | PhysicalPosition | LogicalPosition | Position The new position, in logical or physical pixels, relative to the top-left corner of the hosting window.

Promise<void>

A promise indicating the success or failure of the operation.

import { getCurrentWebview } from '@tauri-apps/api/webview';
import { LogicalPosition } from '@tauri-apps/api/dpi';
await getCurrentWebview().setPosition(new LogicalPosition(600, 500));

Requires the core:webview:allow-set-webview-position permission (not included in core:webview:default).

setSize(size): Promise<void>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L534

Resizes the webview.

Parameter Type Description
size | PhysicalSize | LogicalSize | Size The logical or physical size.

Promise<void>

A promise indicating the success or failure of the operation.

import { getCurrentWebview } from '@tauri-apps/api/webview';
import { LogicalSize } from '@tauri-apps/api/dpi';
await getCurrentWebview().setSize(new LogicalSize(600, 500));

Requires the core:webview:allow-set-webview-size permission (not included in core:webview:default).

setZoom(scaleFactor): Promise<void>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L657

Set webview zoom level.

Parameter Type Description
scaleFactor number The zoom level, where 1 is 100%.

Promise<void>

A promise indicating the success or failure of the operation.

import { getCurrentWebview } from '@tauri-apps/api/webview';
await getCurrentWebview().setZoom(1.5);

Requires the core:webview:allow-set-webview-zoom permission (not included in core:webview:default).

show(): Promise<void>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L637

Show the webview.

Promise<void>

A promise indicating the success or failure of the operation.

import { getCurrentWebview } from '@tauri-apps/api/webview';
await getCurrentWebview().show();

Requires the core:webview:allow-webview-show permission (not included in core:webview:default).

size(): Promise<PhysicalSize>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L489

The physical size of the webview’s client area. The client area is the content of the webview, excluding the title bar and borders.

Promise<PhysicalSize>

The webview’s size, in physical pixels.

import { getCurrentWebview } from '@tauri-apps/api/webview';
const size = await getCurrentWebview().size();

Uses the core:webview:allow-webview-size permission, which is part of core:webview:default.

static getAll(): Promise<Webview[]>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L300

Gets a list of instances of Webview for all available webviews.

Promise<Webview[]>

static getByLabel(label): Promise<Webview | null>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L286

Gets the Webview for the webview associated with the given label.

Parameter Type Description
label string The webview label.

Promise<Webview | null>

The Webview instance to communicate with the webview or null if the webview doesn’t exist.

import { Webview } from '@tauri-apps/api/webview';
const mainWebview = Webview.getByLabel('main');

static getCurrent(): Webview;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L293

Get an instance of Webview for the current webview.

Webview

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L836

Configuration for the webview to create.

2.0.0

Property Type Description Defined in
acceptFirstMouse? boolean Whether clicking an inactive webview also clicks through to the webview on macOS. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L874
allowLinkPreview? boolean on macOS and iOS there is a link preview on long pressing links, this is enabled by default. see https://docs.rs/objc2-web-kit/latest/objc2_web_kit/struct.WKWebView.html#method.allowsLinkPreview Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L978
backgroundColor? Color Set the window and webview background color. Platform-specific: - macOS / iOS: Not implemented. - Windows: - On Windows 7, alpha channel is ignored. - On Windows 8 and newer, if alpha channel is not 0, it will be ignored. Since 2.1.0 Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L950
backgroundThrottling? BackgroundThrottlingPolicy Change the default background throttling behaviour. By default, browsers use a suspend policy that will throttle timers and even unload the whole tab (view) to free resources after roughly 5 minutes when a view became minimized or hidden. This will pause all tasks until the documents visibility state changes back from hidden to visible by bringing the view back to the foreground. ## Platform-specific - Linux / Windows / Android: Unsupported. Workarounds like a pending WebLock transaction might suffice. - iOS: Supported since version 17.0+. - macOS: Supported since version 14.0+. see https://github.com/tauri-apps/tauri/issues/5250#issuecomment-2569380578 Since 2.3.0 Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L969
dataDirectory? string Set a custom path for the webview’s data directory (localStorage, cache, etc.) relative to [appDataDir()]/${label}. For security reasons, paths outside of that location can only be configured on the Rust side. Platform-specific: - Windows: WebViews with different values for settings like additionalBrowserArgs, browserExtensionsEnabled or scrollBarStyle must have different data directories. - macOS / iOS: Unsupported, use dataStoreIdentifier instead. - Android: Unsupported. Since 2.9.0 Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L998
dataStoreIdentifier? number[] Initialize the WebView with a custom data store identifier. This can be seen as a replacement for dataDirectory which is unavailable in WKWebView. See https://developer.apple.com/documentation/webkit/wkwebsitedatastore/init(foridentifier:)?language=objc The array must contain 16 u8 numbers. Platform-specific: - macOS / iOS: Available on macOS >= 14 and iOS >= 17 - Windows / Linux / Android: Unsupported. Since 2.9.0 Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L1012
devtools? boolean Whether web inspector, which is usually called browser devtools, is enabled or not. Enabled by default. This API works in debug builds, but requires devtools feature flag to enable it in release builds. Platform-specific - macOS: This will call private functions on macOS. - Android: Open chrome://inspect/#devices in Chrome to get the devtools window. Wry’s WebView devtools API isn’t supported on Android. - iOS: Open Safari > Develop > [Your Device Name] > [Your WebView] to get the devtools window. Since 2.1.0 Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L937
disableInputAccessoryView? boolean Allows disabling the input accessory view on iOS. The accessory view is the view that appears above the keyboard when a text input element is focused. It usually displays a view with “Done”, “Next” buttons. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L985
dragDropEnabled? boolean Whether the drag and drop is enabled or not on the webview. By default it is enabled. Disabling it is required to use HTML5 drag and drop on the frontend on Windows. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L870
focus? boolean Whether the webview should have focus or not Since 2.1.0 Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L864
generalAutofillEnabled? boolean Controls the WebView’s browser-level general autofill behavior. This option does not disable password or credit card autofill. When set to false, the WebView will not automatically populate general form fields using previously stored data such as addresses or contact information. If not specified, this is true by default. ## Platform-specific - Windows: Supported. WebView2’s autofill feature (called “Suggestions”) may not honor autocomplete="off" on input elements in some cases. - Linux / Android / iOS / macOS: Unsupported and performs no operation. Since 2.11.0 Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L1046
height number The initial height in logical pixels. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L852
incognito? boolean Whether or not the webview should be launched in incognito mode. Platform-specific - Android: Unsupported. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L886
javascriptDisabled? boolean Whether we should disable JavaScript code execution on the webview or not. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L973
proxyUrl? string The proxy URL for the WebView for all network requests. Must be either a http:// or a socks5:// URL. Platform-specific - macOS: Requires the macos-proxy feature flag and only compiles for macOS 14+. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L896
scrollBarStyle? ScrollBarStyle Specifies the native scrollbar style to use with the webview. CSS styles that modify the scrollbar are applied on top of the native appearance configured here. Defaults to default, which is the browser default. ## Platform-specific - Windows: - fluentOverlay requires WebView2 Runtime version 125.0.2535.41 or higher, and does nothing on older versions. - This option must be given the same value for all webviews. - Linux / Android / iOS / macOS: Unsupported. Only supports Default and performs no operation. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L1027
transparent? boolean Whether the webview is transparent or not. Note that on macOS this requires the macos-private-api feature flag, enabled under tauri.conf.json > app > macOSPrivateApi. WARNING: Using private APIs on macOS prevents your application from being accepted to the App Store. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L858
url? string Remote URL or local file path to open. - URL such as https://github.com/tauri-apps is opened directly on a Tauri webview. - data: URL such as data:text/html,<html>... is only supported with the webview-data-url Cargo feature for the tauri dependency. - local file path or route such as /path/to/page.html or /users is appended to the application URL (the devServer URL on development, or tauri://localhost/ and https://tauri.localhost/ on production). Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L844
useHttpsScheme? boolean Sets whether the custom protocols should use https://<scheme>.localhost instead of the default http://<scheme>.localhost on Windows and Android. Defaults to false. #### Note Using a https scheme will NOT allow mixed content when trying to fetch http endpoints and therefore will not match the behavior of the <scheme>://localhost protocols used on macOS and Linux. #### Warning Changing this value between releases will change the IndexedDB, cookies and localstorage location and your app will not be able to access them. Since 2.1.0 Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L923
userAgent? string The user agent for the webview. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L878
width number The initial width in logical pixels. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L850
x number The initial horizontal position in logical pixels, relative to the window’s top-left corner. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L846
y number The initial vertical position in logical pixels, relative to the window’s top-left corner. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L848
zoomHotkeysEnabled? boolean Whether page zooming by hotkeys is enabled Platform-specific: - Windows: Controls WebView2’s IsZoomControlEnabled setting. - MacOS / Linux: Injects a polyfill that zooms in and out with ctrl/command + -/=, 20% in each step, ranging from 20% to 1000%. Requires webview:allow-set-webview-zoom permission - Android / iOS: Unsupported. Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L908

type Color =
| [number, number, number]
| [number, number, number, number]
| {
alpha: number;
blue: number;
green: number;
red: number;
}
| string;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2575

An RGBA color. Each value has minimum of 0 and maximum of 255.

It can be either a string #ffffff, an array of 3 or 4 elements or an object.

2.0.0


type DragDropEvent =
| {
paths: string[];
position: PhysicalPosition;
type: "enter";
}
| {
position: PhysicalPosition;
type: "over";
}
| {
paths: string[];
position: PhysicalPosition;
type: "drop";
}
| {
type: "leave";
};

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L77

The payload of a drag and drop event, see Webview.onDragDropEvent.

  • enter: the user dragged files over the webview; paths holds the dragged files.
  • over: the cursor moved while dragging; only position changes.
  • drop: the files were dropped; paths holds the dropped files.
  • leave: the drag left the webview or was cancelled.

Positions are in physical pixels, relative to the webview’s top-left corner.

function getAllWebviews(): Promise<Webview[]>;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L107

Gets a list of instances of Webview for all available webviews.

Promise<Webview[]>

Uses the core:webview:allow-get-all-webviews permission, which is part of core:webview:default.

2.0.0


function getCurrentWebview(): Webview;

Source: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/webview.ts#L88

Get an instance of Webview for the current webview.

Webview

2.0.0


© 2026 Tauri Contributors. CC-BY / MIT