跳到内容
Tauri

window

提供创建窗口、与其他窗口通信以及操作当前窗口的API。

可以使用Window.listen监听事件

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

重新导出颜色

重新导出DragDropEvent

重新导出LogicalPosition

重新导出LogicalSize

重新导出PhysicalPosition

重新导出PhysicalSize

后台节流策略

2.0.0

Disabled: "disabled";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2091

Suspend: "suspend";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2093

Throttle: "throttle";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2092


平台特定窗口效果

2.0.0

Acrylic: "acrylic";

Windows 10/11

在Windows 10 v1903+和Windows 11 build 22000上调整窗口大小/拖动窗口时,此效果性能不佳。

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2207

AppearanceBased: "appearanceBased";

适合视图有效外观的默认材质。macOS 10.14-

自macOS 10.14以来。您应该改为选择适当的语义材质。

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2107

Blur: "blur";

仅限Windows 7/10/11(22H1)

在Windows 11 build 22621上调整窗口大小/拖动窗口时,此效果性能不佳。

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2199

ContentBackground: "contentBackground";

macOS 10.14+

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2179

Dark: "dark";

macOS 10.14-

自macOS 10.14以来。请改用语义材质。

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2119

FullScreenUI: "fullScreenUI";

macOS 10.14+

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2171

HeaderView: "headerView";

macOS 10.14+

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2155

HudWindow: "hudWindow";

macOS 10.14+

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2167

Light: "light";

macOS 10.14-

自macOS 10.14以来。请改用语义材质。

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2113

MediumLight: "mediumLight";

macOS 10.14-

自macOS 10.14以来。请改用语义材质。

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2125

Menu: "menu";

macOS 10.11+

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2143

Mica: "mica";

仅限Windows 11

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2191

Popover: "popover";

macOS 10.11+

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2147

Selection: "selection";

macOS 10.10+

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2139

Sheet: "sheet";

macOS 10.14+

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2159

Sidebar: "sidebar";

macOS 10.11+

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2151

Tabbed: "tabbed";

与系统暗色偏好匹配的选项卡效果 仅限Windows 11

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2211

TabbedDark: "tabbedDark";

在暗色模式下启用的选项卡效果,但仅在系统启用了暗色模式时 仅限Windows 11

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2215

TabbedLight: "tabbedLight";

浅色模式下的选项卡效果 仅限Windows 11

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2219

Titlebar: "titlebar";

macOS 10.10+

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2135

Tooltip: "tooltip";

macOS 10.14+

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2175

UltraDark: "ultraDark";

macOS 10.14-

自macOS 10.14以来。请改用语义材质。

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2131

UnderPageBackground: "underPageBackground";

macOS 10.14+

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2187

UnderWindowBackground: "underWindowBackground";

macOS 10.14+

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2183

WindowBackground: "windowBackground";

macOS 10.14+

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2163


窗口效果状态 仅限macOS

https://developer.apple.com/documentation/appkit/nsvisualeffectview/state

2.0.0

Active: "active";

使窗口效果状态始终处于活动状态 仅限macOS

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2237

FollowsWindowActiveState: "followsWindowActiveState";

使窗口效果状态跟随窗口的活动状态 仅限macOS

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2233

Inactive: "inactive";

使窗口效果状态始终处于非活动状态 仅限macOS

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2241


Error: "error";

错误状态。在Linux上被视为正常

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L190

Indeterminate: "indeterminate";

不确定状态。在Linux和macOS上被视为正常

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L182

None: "none";

隐藏进度条。

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L174

Normal: "normal";

正常状态。

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L178

Paused: "paused";

暂停状态。在Linux上被视为正常

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L186


请求窗口注意的类型。

1.0.0

Critical: 1;

平台特定

  • macOS: 使停靠栏图标弹跳,直到应用程序获得焦点。
  • Windows: 闪烁窗口和任务栏按钮,直到应用程序获得焦点。

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L99

Informational: 2;

平台特定

  • macOS: 停靠栏图标弹跳一次。
  • Windows: 任务栏按钮闪烁,直到应用程序获得焦点。

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L105

new CloseRequestedEvent(event): CloseRequestedEvent
参数类型
eventEvent<未知>

关闭请求事件

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

属性类型描述定义于
事件EventName事件名称: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L110
id数字用于取消监听的事件标识符: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L112

isPreventDefault(): boolean

布尔值 (boolean)

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

preventDefault(): void

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


创建新窗口或获取现有窗口的句柄。

窗口由一个*标签*(一个用于后续引用的唯一标识符)标识。它只能包含字母数字字符 a-zA-Z 以及以下特殊字符 -/:_

import { Window } from "@tauri-apps/api/window"
const appWindow = new Window('theUniqueLabel');
appWindow.once('tauri://created', function () {
// window successfully created
});
appWindow.once('tauri://error', function (e) {
// an error happened creating the window
});
// emit an event to the backend
await appWindow.emit("some-event", "data");
// listen to an event from the backend
const unlisten = await appWindow.listen("event-name", e => {});
unlisten();

2.0.0

new Window(label, options): Window

创建一个新窗口。

参数类型描述
标签字符串唯一的窗口标签。必须是字母数字:a-zA-Z-/:_
选项窗口选项-

窗口

与窗口通信的 Window 实例。

import { Window } from '@tauri-apps/api/window';
const appWindow = new Window('my-label');
appWindow.once('tauri://created', function () {
// window successfully created
});
appWindow.once('tauri://error', function (e) {
// an error happened creating the window
});

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

属性类型描述定义于
标签字符串窗口标签。它是窗口的唯一标识符,可用于后续引用。: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L276
监听器Record<字符串, EventCallback<任意>[]>本地事件监听器。: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L279

center(): Promise<void>

将窗口居中。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().center();

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

clearEffects(): Promise<void>

如果可能,清除任何应用的特效。

Promise<void>

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

close(): Promise<void>

关闭窗口。

请注意,这将触发一个 closeRequested 事件,因此您可以拦截它。要强制关闭窗口,请使用 Window.destroy

Promise<void>

表示操作成功或失败的 Promise。

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

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

destroy(): Promise<void>

销毁窗口。行为类似于 Window.close,但强制关闭窗口而不是发出 closeRequested 事件。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().destroy();

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

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

向所有 目标 发出事件。

类型参数
T
参数类型描述
event字符串事件名称。必须只包含字母数字字符、-/:_
载荷 (payload)?T事件载荷。

Promise<void>

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

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

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

向所有与给定目标匹配的 目标 发出事件。

类型参数
T
参数类型描述
目标字符串 | EventTarget目标窗口/WebView/WebviewWindow 的标签,或原始 EventTarget 对象。
event字符串事件名称。必须只包含字母数字字符、-/:_
载荷 (payload)?T事件载荷。

Promise<void>

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().emit('main', 'window-loaded', { loggedIn: true, token: 'authToken' });

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

hide(): Promise<void>

将窗口可见性设置为 false。

Promise<void>

表示操作成功或失败的 Promise。

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

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

innerPosition(): Promise<PhysicalPosition>

窗口客户区左上角相对于桌面左上角的位置。

Promise<PhysicalPosition>

窗口的内部位置。

import { getCurrentWindow } from '@tauri-apps/api/window';
const position = await getCurrentWindow().innerPosition();

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

innerSize(): Promise<PhysicalSize>

窗口客户区的物理大小。客户区是窗口的内容,不包括标题栏和边框。

Promise<PhysicalSize>

窗口的内部大小。

import { getCurrentWindow } from '@tauri-apps/api/window';
const size = await getCurrentWindow().innerSize();

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

isAlwaysOnTop(): Promise<boolean>

窗口是否配置为始终位于其他窗口之上。

Promise<布尔值>

窗口是否可见。

import { getCurrentWindow } from '@tauri-apps/api/window';
const alwaysOnTop = await getCurrentWindow().isAlwaysOnTop();

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

isClosable(): Promise<boolean>

获取窗口的本地关闭按钮状态。

平台特定

  • iOS / Android: 不支持。

Promise<布尔值>

窗口的原生关闭按钮是否启用。

import { getCurrentWindow } from '@tauri-apps/api/window';
const closable = await getCurrentWindow().isClosable();

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

isDecorated(): Promise<boolean>

获取窗口当前的装饰状态。

Promise<布尔值>

窗口是否被装饰。

import { getCurrentWindow } from '@tauri-apps/api/window';
const decorated = await getCurrentWindow().isDecorated();

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

isEnabled(): Promise<boolean>

窗口是否启用或禁用。

Promise<布尔值>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setEnabled(false);

2.0.0

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

isFocused(): Promise<boolean>

获取窗口当前的焦点状态。

Promise<布尔值>

窗口是否获得焦点。

import { getCurrentWindow } from '@tauri-apps/api/window';
const focused = await getCurrentWindow().isFocused();

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

isFullscreen(): Promise<boolean>

获取窗口当前的满屏状态。

Promise<布尔值>

窗口是否处于全屏模式。

import { getCurrentWindow } from '@tauri-apps/api/window';
const fullscreen = await getCurrentWindow().isFullscreen();

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

isMaximizable(): Promise<boolean>

获取窗口的本地最大化按钮状态。

平台特定

  • Linux / iOS / Android: 不支持。

Promise<布尔值>

窗口的本地最大化按钮是否启用。

import { getCurrentWindow } from '@tauri-apps/api/window';
const maximizable = await getCurrentWindow().isMaximizable();

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

isMaximized(): Promise<boolean>

获取窗口当前的最大化状态。

Promise<布尔值>

窗口是否最大化。

import { getCurrentWindow } from '@tauri-apps/api/window';
const maximized = await getCurrentWindow().isMaximized();

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

isMinimizable(): Promise<boolean>

获取窗口的本地最小化按钮状态。

平台特定

  • Linux / iOS / Android: 不支持。

Promise<布尔值>

窗口的原生最小化按钮是否启用。

import { getCurrentWindow } from '@tauri-apps/api/window';
const minimizable = await getCurrentWindow().isMinimizable();

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

isMinimized(): Promise<boolean>

获取窗口当前的最小化状态。

Promise<布尔值>

import { getCurrentWindow } from '@tauri-apps/api/window';
const minimized = await getCurrentWindow().isMinimized();

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

isResizable(): Promise<boolean>

获取窗口当前的尺寸可调整状态。

Promise<布尔值>

窗口是否可调整大小。

import { getCurrentWindow } from '@tauri-apps/api/window';
const resizable = await getCurrentWindow().isResizable();

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

isVisible(): Promise<boolean>

获取窗口当前的可见状态。

Promise<布尔值>

窗口是否可见。

import { getCurrentWindow } from '@tauri-apps/api/window';
const visible = await getCurrentWindow().isVisible();

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

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

监听此窗口发出的事件。

类型参数
T
参数类型描述
eventEventName事件名称。必须只包含字母数字字符、-/:_
处理程序EventCallback<T>事件处理程序。

Promise<UnlistenFn>

一个解析为取消监听事件函数的 Promise。请注意,如果您的监听器超出范围(例如组件已卸载),则必须删除该监听器。

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

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

maximize(): Promise<void>

最大化窗口。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().maximize();

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

minimize(): Promise<void>

最小化窗口。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().minimize();

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

onCloseRequested(handler): Promise<UnlistenFn>

监听窗口关闭请求。当用户请求关闭窗口时发出。

参数类型
处理程序(事件) => void | Promise<void>

Promise<UnlistenFn>

一个解析为取消监听事件函数的 Promise。请注意,如果您的监听器超出范围(例如组件已卸载),则必须删除该监听器。

import { getCurrentWindow } from "@tauri-apps/api/window";
import { confirm } from '@tauri-apps/api/dialog';
const unlisten = await getCurrentWindow().onCloseRequested(async (event) => {
const confirmed = await confirm('Are you sure?');
if (!confirmed) {
// user did not confirm closing the window; let's prevent it
event.preventDefault();
}
});
// you need to call unlisten if your handler goes out of scope e.g. the component is unmounted
unlisten();

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

onDragDropEvent(handler): Promise<UnlistenFn>

监听文件拖放事件。当用户将选定的文件悬停在 webview 上、拖放文件或取消操作时,会触发监听器。

参数类型
处理程序EventCallback<DragDropEvent>

Promise<UnlistenFn>

一个解析为取消监听事件函数的 Promise。请注意,如果您的监听器超出范围(例如组件已卸载),则必须删除该监听器。

import { getCurrentWindow } from "@tauri-apps/api/webview";
const unlisten = await getCurrentWindow().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');
}
});
// you need to call unlisten if your handler goes out of scope e.g. the component is unmounted
unlisten();

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

onFocusChanged(handler): Promise<UnlistenFn>

监听窗口焦点变化。

参数类型
处理程序EventCallback<布尔值>

Promise<UnlistenFn>

一个解析为取消监听事件函数的 Promise。请注意,如果您的监听器超出范围(例如组件已卸载),则必须删除该监听器。

import { getCurrentWindow } from "@tauri-apps/api/window";
const unlisten = await getCurrentWindow().onFocusChanged(({ payload: focused }) => {
console.log('Focus changed, window is focused? ' + focused);
});
// you need to call unlisten if your handler goes out of scope e.g. the component is unmounted
unlisten();

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

onMoved(handler): Promise<UnlistenFn>

监听窗口移动。

参数类型
处理程序EventCallback<PhysicalPosition>

Promise<UnlistenFn>

一个解析为取消监听事件函数的 Promise。请注意,如果您的监听器超出范围(例如组件已卸载),则必须删除该监听器。

import { getCurrentWindow } from "@tauri-apps/api/window";
const unlisten = await getCurrentWindow().onMoved(({ payload: position }) => {
console.log('Window moved', position);
});
// you need to call unlisten if your handler goes out of scope e.g. the component is unmounted
unlisten();

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

onResized(handler): Promise<UnlistenFn>

监听窗口大小调整。

参数类型
处理程序EventCallback<PhysicalSize>

Promise<UnlistenFn>

一个解析为取消监听事件函数的 Promise。请注意,如果您的监听器超出范围(例如组件已卸载),则必须删除该监听器。

import { getCurrentWindow } from "@tauri-apps/api/window";
const unlisten = await getCurrentWindow().onResized(({ payload: size }) => {
console.log('Window resized', size);
});
// you need to call unlisten if your handler goes out of scope e.g. the component is unmounted
unlisten();

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

onScaleChanged(handler): Promise<UnlistenFn>

监听窗口比例尺变化。当窗口的比例因子发生变化时发出。以下用户操作可能导致 DPI 变化

  • 更改显示器分辨率。
  • 更改显示器比例因子(例如在 Windows 控制面板中)。
  • 将窗口移动到具有不同比例因子的显示器。
参数类型
处理程序EventCallback<ScaleFactorChanged>

Promise<UnlistenFn>

一个解析为取消监听事件函数的 Promise。请注意,如果您的监听器超出范围(例如组件已卸载),则必须删除该监听器。

import { getCurrentWindow } from "@tauri-apps/api/window";
const unlisten = await getCurrentWindow().onScaleChanged(({ payload }) => {
console.log('Scale changed', payload.scaleFactor, payload.size);
});
// you need to call unlisten if your handler goes out of scope e.g. the component is unmounted
unlisten();

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

onThemeChanged(handler): Promise<UnlistenFn>

监听系统主题变化。

参数类型
处理程序EventCallback<Theme>

Promise<UnlistenFn>

一个解析为取消监听事件函数的 Promise。请注意,如果您的监听器超出范围(例如组件已卸载),则必须删除该监听器。

import { getCurrentWindow } from "@tauri-apps/api/window";
const unlisten = await getCurrentWindow().onThemeChanged(({ payload: theme }) => {
console.log('New theme: ' + theme);
});
// you need to call unlisten if your handler goes out of scope e.g. the component is unmounted
unlisten();

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

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

只监听此窗口发出的事件一次。

类型参数
T
参数类型描述
eventEventName事件名称。必须只包含字母数字字符、-/:_
处理程序EventCallback<T>事件处理程序。

Promise<UnlistenFn>

一个解析为取消监听事件函数的 Promise。请注意,如果您的监听器超出范围(例如组件已卸载),则必须删除该监听器。

import { getCurrentWindow } from '@tauri-apps/api/window';
const unlisten = await getCurrentWindow().once<null>('initialized', (event) => {
console.log(`Window initialized!`);
});
// you need to call unlisten if your handler goes out of scope e.g. the component is unmounted
unlisten();

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

outerPosition(): Promise<PhysicalPosition>

窗口左上角相对于桌面左上角的位置。

Promise<PhysicalPosition>

窗口的外部位置。

import { getCurrentWindow } from '@tauri-apps/api/window';
const position = await getCurrentWindow().outerPosition();

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

outerSize(): Promise<PhysicalSize>

整个窗口的物理大小。这些尺寸包括标题栏和边框。如果你不想要这些(通常也不需要),请使用 inner_size。

Promise<PhysicalSize>

窗口的外部大小。

import { getCurrentWindow } from '@tauri-apps/api/window';
const size = await getCurrentWindow().outerSize();

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

requestUserAttention(requestType): Promise<void>

请求用户注意窗口,如果应用程序已获得焦点,则此操作无效。请求用户注意的表现形式因平台而异,详情请参阅 UserAttentionType

提供 null 将取消用户注意请求。当窗口接收输入时,窗口管理器可能不会自动取消用户注意请求。

平台特定

  • macOS: null 无效。
  • Linux: 紧急程度具有相同的效果。
参数类型
requestTypenull | UserAttentionType

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().requestUserAttention();

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

scaleFactor(): Promise<number>

可用于将物理像素映射到逻辑像素的比例因子。

Promise<数字>

窗口的显示器比例因子。

import { getCurrentWindow } from '@tauri-apps/api/window';
const factor = await getCurrentWindow().scaleFactor();

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

setAlwaysOnBottom(alwaysOnBottom): Promise<void>

窗口是否应始终位于其他窗口下方。

参数类型描述
始终在底部布尔值 (boolean)窗口是否应始终位于其他窗口之下。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setAlwaysOnBottom(true);

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

setAlwaysOnTop(alwaysOnTop): Promise<void>

窗口是否应始终位于其他窗口之上。

参数类型描述
始终在最顶层布尔值 (boolean)窗口是否应始终位于其他窗口之上。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setAlwaysOnTop(true);

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

setBackgroundColor(color): Promise<void>

设置窗口背景颜色。

平台特定

  • Windows: alpha 通道被忽略。
  • iOS / Android: 不支持。
参数类型
颜色颜色

Promise<void>

表示操作成功或失败的 Promise。

2.1.0

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

setBadgeCount(count?): Promise<void>

设置徽章计数。它是应用程序范围的,不特定于此窗口。

平台特定

  • Windows: 不支持。请改用 @{linkcode Window.setOverlayIcon}。
参数类型描述
计数?数字徽章计数。使用 undefined 删除徽章。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setBadgeCount(5);

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

setBadgeLabel(label?): Promise<void>

设置徽章标签 仅限 macOS

参数类型描述
标签?字符串徽章标签。使用 undefined 删除徽章。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setBadgeLabel("Hello");

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

setClosable(closable): Promise<void>

设置窗口的本地关闭按钮是否启用。

平台特定

  • Linux: GTK+ 将尽力说服窗口管理器不显示关闭按钮。根据系统,此功能在已可见的窗口上调用时可能无效。
  • iOS / Android: 不支持。
参数类型
可关闭布尔值 (boolean)

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setClosable(false);

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

setContentProtected(protected_): Promise<void>

防止窗口内容被其他应用程序捕获。

参数类型
protected_布尔值 (boolean)

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setContentProtected(true);

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

setCursorGrab(grab): Promise<void>

抓取光标,阻止其离开窗口。

不保证光标会被隐藏。如果需要,应自行隐藏。

平台特定

  • Linux: 不支持。
  • macOS: 这会将光标锁定在一个固定位置,这在视觉上看起来很笨拙。
参数类型描述
抓取布尔值 (boolean)true 抓取光标图标,false 释放光标图标。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setCursorGrab(true);

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

setCursorIcon(icon): Promise<void>

修改窗口的光标图标。

参数类型描述
图标光标图标新光标图标。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setCursorIcon('help');

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

setCursorPosition(position): Promise<void>

更改光标在窗口坐标中的位置。

参数类型描述
位置逻辑位置 | 物理位置 | 位置新光标位置。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow, LogicalPosition } from '@tauri-apps/api/window';
await getCurrentWindow().setCursorPosition(new LogicalPosition(600, 300));

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

setCursorVisible(visible): Promise<void>

修改光标的可见性。

平台特定

  • Windows: 光标仅在窗口范围内隐藏。
  • macOS: 只要窗口具有输入焦点,光标就会隐藏,即使光标在窗口外部也是如此。
参数类型描述
可见的布尔值 (boolean)如果为 false,则隐藏光标。如果为 true,则显示光标。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setCursorVisible(false);

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

setDecorations(decorations): Promise<void>

窗口是否应该有边框和标题栏。

参数类型描述
装饰布尔值 (boolean)窗口是否应该有边框和标题栏。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setDecorations(false);

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

setEffects(effects): Promise<void>

设置窗口效果。

参数类型
效果效果

Promise<void>

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

setEnabled(enabled): Promise<void>

启用或禁用窗口。

参数类型
已启用布尔值 (boolean)

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setEnabled(false);

2.0.0

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

setFocus(): Promise<void>

将窗口置于最前端并聚焦。

Promise<void>

表示操作成功或失败的 Promise。

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

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

setFocusable(focusable): Promise<void>

设置窗口是否可聚焦。

平台特定

  • macOS:如果窗口已获得焦点,则在调用 set_focusable(false) 后无法取消其焦点。在这种情况下,您可以考虑调用 Window.setFocus,但这会将窗口移动到背面,即在 z 轴顺序上置于底部。
参数类型描述
可聚焦布尔值 (boolean)窗口是否可聚焦。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setFocusable(true);

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

setFullscreen(fullscreen): Promise<void>

设置窗口全屏状态。

参数类型描述
全屏布尔值 (boolean)窗口是否应全屏显示。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setFullscreen(true);

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

setIcon(icon): Promise<void>

设置窗口图标。

参数类型描述
图标| 字符串 | Uint8Array | 数字[] | ArrayBuffer | Image图标字节或图标文件路径。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setIcon('/tauri/awesome.png');

请注意,您可能需要 image-icoimage-png Cargo 功能才能使用此 API。要启用它,请更改您的 Cargo.toml 文件

[dependencies]
tauri = { version = "...", features = ["...", "image-png"] }

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

setIgnoreCursorEvents(ignore): Promise<void>

更改光标事件行为。

参数类型描述
忽略布尔值 (boolean)true 忽略光标事件;false 照常处理它们。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setIgnoreCursorEvents(true);

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

setMaxSize(size): Promise<void>

设置窗口最大内部大小。如果 size 参数未定义,则取消约束。

参数类型描述
尺寸| 未定义 | null | 逻辑尺寸 | 物理尺寸 | 尺寸逻辑或物理内部大小,或 null 以取消约束。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow, LogicalSize } from '@tauri-apps/api/window';
await getCurrentWindow().setMaxSize(new LogicalSize(600, 500));

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

setMaximizable(maximizable): Promise<void>

设置窗口的本地最大化按钮是否启用。如果resizable设置为false,则此设置将被忽略。

平台特定

  • macOS: 禁用窗口标题栏中的“缩放”按钮,该按钮也用于进入全屏模式。
  • Linux / iOS / Android: 不支持。
参数类型
可最大化布尔值 (boolean)

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setMaximizable(false);

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

setMinSize(size): Promise<void>

设置窗口最小内部大小。如果未提供 size 参数,则取消约束。

参数类型描述
尺寸| 未定义 | null | 逻辑尺寸 | 物理尺寸 | 尺寸逻辑或物理内部大小,或 null 以取消约束。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow, PhysicalSize } from '@tauri-apps/api/window';
await getCurrentWindow().setMinSize(new PhysicalSize(600, 500));

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

setMinimizable(minimizable): Promise<void>

设置窗口的本地最小化按钮是否启用。

平台特定

  • Linux / iOS / Android: 不支持。
参数类型
可最小化布尔值 (boolean)

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setMinimizable(false);

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

setOverlayIcon(icon?): Promise<void>

设置覆盖图标。仅限 Windows,可为每个窗口设置覆盖图标。

请注意,您可能需要 image-icoimage-png Cargo 功能才能使用此 API。要启用它,请更改您的 Cargo.toml 文件

[dependencies]
tauri = { version = "...", features = ["...", "image-png"] }
参数类型描述
图标?| 字符串 | Uint8Array | 数字[] | ArrayBuffer | Image图标字节或图标文件的路径。使用 undefined 可删除覆盖图标。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setOverlayIcon("/tauri/awesome.png");

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1733

setPosition(position): Promise<void>

设置窗口外部位置。

参数类型描述
位置逻辑位置 | 物理位置 | 位置新位置,以逻辑像素或物理像素表示。

Promise<void>

表示操作成功或失败的 Promise。

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

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1381

setProgressBar(state): Promise<void>

设置任务栏进度状态。

平台特定

  • Linux / macOS:进度条是应用范围的,不特定于此窗口。
  • Linux:仅支持带有 libunity 的桌面环境(例如 GNOME)。
参数类型
状态进度条状态

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow, ProgressBarStatus } from '@tauri-apps/api/window';
await getCurrentWindow().setProgressBar({
status: ProgressBarStatus.Normal,
progress: 50,
});

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1761

setResizable(resizable): Promise<void>

更新窗口可调整大小的标志。

参数类型
可调整大小布尔值 (boolean)

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setResizable(false);

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L889

setShadow(enable): Promise<void>

窗口是否应该有阴影。

平台特定

  • Windows
    • false 对装饰窗口无效,阴影始终开启。
    • true 将使无装饰窗口有 1 像素的白色边框,在 Windows 11 上,它将有圆角。
  • Linux: 不支持。
参数类型
启用布尔值 (boolean)

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setShadow(false);

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1203

setSimpleFullscreen(fullscreen): Promise<void>

在 macOS 上,切换到不需要新 macOS 空间的全屏模式。返回一个布尔值,指示转换是否成功(如果窗口已处于原生全屏模式,则此操作无效)。这是 macOS 在 Lion 之前版本中全屏的工作方式。它允许用户拥有全屏窗口,而无需使用另一个空间或控制整个显示器。

在其他平台上,这与 Window.setFullscreen 相同。

参数类型描述
全屏布尔值 (boolean)窗口是否应该进入简单全屏模式。

Promise<void>

表示操作成功或失败的 Promise。

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1417

setSize(size): Promise<void>

使用新的内部尺寸调整窗口大小。

参数类型描述
尺寸LogicalSize | PhysicalSize | Size逻辑或物理内部尺寸。

Promise<void>

表示操作成功或失败的 Promise。

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

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1294

setSizeConstraints(constraints): Promise<void>

设置窗口内部尺寸约束。

参数类型描述
约束undefined | null | WindowSizeConstraints逻辑或物理内部大小,或 null 以取消约束。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setSizeConstraints({ minWidth: 300 });

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1352

setSkipTaskbar(skip): Promise<void>

窗口图标是否应从任务栏隐藏。

平台特定

  • macOS: 不支持。
参数类型描述
跳过布尔值 (boolean)设置为 true 以隐藏窗口图标,设置为 false 以显示它。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setSkipTaskbar(true);

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1506

setTheme(theme?): Promise<void>

设置窗口主题,传入 nullundefined 以跟随系统主题

平台特定

  • Linux / macOS:主题是应用范围的,不特定于此窗口。
  • iOS / Android: 不支持。
参数类型
主题?null | Theme

Promise<void>

2.0.0

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1806

setTitle(title): Promise<void>

设置窗口标题。

参数类型描述
标题字符串新标题

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().setTitle('Tauri');

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1013

setTitleBarStyle(style): Promise<void>

设置标题栏样式。仅限 macOS

参数类型
样式标题栏样式

Promise<void>

2.0.0

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1789

setVisibleOnAllWorkspaces(visible): Promise<void>

设置窗口是否应在所有工作区或虚拟桌面上可见。

平台特定

  • Windows / iOS / Android: 不支持。
参数类型
可见的布尔值 (boolean)

Promise<void>

2.0.0

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1777

show(): Promise<void>

将窗口可见性设置为 true。

Promise<void>

表示操作成功或失败的 Promise。

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

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1110

startDragging(): Promise<void>

开始拖动窗口。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().startDragging();

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1646

startResizeDragging(direction): Promise<void>

开始调整窗口大小拖动。

参数类型
方向ResizeDirection

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().startResizeDragging();

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1662

theme(): Promise<null | Theme>

获取窗口当前主题。

平台特定

  • macOS: 主题在 macOS 10.14 中引入。在 macOS 10.13 及更低版本上返回 light

Promise<null | Theme>

窗口主题。

import { getCurrentWindow } from '@tauri-apps/api/window';
const theme = await getCurrentWindow().theme();

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L801

title(): Promise<string>

获取窗口当前标题。

Promise<string>

import { getCurrentWindow } from '@tauri-apps/api/window';
const title = await getCurrentWindow().title();

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L780

toggleMaximize(): Promise<void>

切换窗口最大化状态。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().toggleMaximize();

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1062

unmaximize(): Promise<void>

取消窗口最大化。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().unmaximize();

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1046

unminimize(): Promise<void>

取消窗口最小化。

Promise<void>

表示操作成功或失败的 Promise。

import { getCurrentWindow } from '@tauri-apps/api/window';
await getCurrentWindow().unminimize();

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L1094

static getAll(): Promise<Window[]>

获取所有可用窗口的 Window 实例列表。

Promise<Window[]>

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L345

static getByLabel(label): Promise<null | Window>

获取与给定标签关联的 Window。

参数类型描述
标签字符串窗口标签。

Promise<null | Window>

用于与窗口通信的 Window 实例,如果窗口不存在则为 null。

import { Window } from '@tauri-apps/api/window';
const mainWindow = Window.getByLabel('main');

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L331

static getCurrent(): Window

获取当前窗口的 Window 实例。

窗口

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L338

static getFocusedWindow(): Promise<null | Window>

获取焦点窗口。

Promise<null | Window>

Window 实例,如果没有任何焦点窗口,则为 undefined

import { Window } from '@tauri-apps/api/window';
const focusedWindow = Window.getFocusedWindow();

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L359

窗口效果配置对象

2.0.0

属性类型描述定义于
color?颜色窗口效果颜色。仅在 Windows 10 v1903+ 上影响 Effect.BlurEffect.Acrylic。对 Windows 7 或 Windows 11 没有影响。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2266
effects效果[]要应用于窗口的窗口效果列表。冲突的效果将应用第一个并忽略其余的。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2253
radius?数字窗口效果圆角半径仅限 macOS来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2261
state?效果状态窗口效果状态仅限 macOS来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2257

允许您检索有关给定显示器的信息。

1.0.0

属性类型描述定义于
namenull | string显示器的人性化名称来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L49
position物理位置显示器相对于更大全屏区域的左上角位置。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L53
scaleFactor数字可用于将物理像素映射到逻辑像素的比例因子。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L60
size物理大小显示器分辨率。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L51
workArea对象显示器的工作区域。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L55
workArea.position物理位置-来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L56
workArea.size物理大小-来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L57

属性类型描述定义于
progress?数字进度条进度。值范围为 0100来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L208
status?进度条状态进度条状态。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L204

scaleChange 事件的负载。

1.0.2

属性类型描述定义于
scaleFactor数字新窗口缩放因子。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L83
size物理大小新窗口尺寸来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L85

要创建的窗口配置。

1.0.0

属性类型描述定义于
allowLinkPreview?布尔值 (boolean)在 macOS 和 iOS 上,长按链接会显示链接预览,默认启用。请参阅 https://docs.rs/objc2-web-kit/latest/objc2_web_kit/struct.WKWebView.html#method.allowsLinkPreview来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2468
alwaysOnBottom?布尔值 (boolean)窗口是否应始终位于其他窗口下方。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2341
alwaysOnTop?布尔值 (boolean)窗口是否应始终位于其他窗口之上。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2339
backgroundColor?颜色设置窗口背景颜色。平台特定:- Android / iOS: 不支持。- Windows:alpha 通道被忽略。 2.1.0 起来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2445
backgroundThrottling?后台节流策略更改默认的后台节流行为。## 平台特定 - Linux / Windows / Android:不支持。像挂起的 WebLock 事务这样的变通方法可能足够。- iOS:自 17.0+ 版本起支持。- macOS:自 14.0+ 版本起支持。请参阅 https://github.com/tauri-apps/tauri/issues/5250#issuecomment-2569380578 2.3.0 起来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2459
center?布尔值 (boolean)在屏幕中央显示窗口。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2284
closable?布尔值 (boolean)窗口的本地关闭按钮是否启用。默认为 true来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2400
contentProtected?布尔值 (boolean)防止窗口内容被其他应用程序捕获。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2343
decorations?布尔值 (boolean)窗口是否应该有边框和标题栏。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2337
disableInputAccessoryView?布尔值 (boolean)允许在 iOS 上禁用输入辅助视图。辅助视图是当文本输入元素获得焦点时出现在键盘上方的视图。它通常显示带有“完成”、“下一步”按钮的视图。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2475
focus?布尔值 (boolean)窗口是否应在创建时立即获得焦点。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2323
focusable?布尔值 (boolean)窗口是否可以获得焦点。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2325
fullscreen?布尔值 (boolean)窗口是否处于全屏模式。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2321
height?数字初始高度。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2292
hiddenTitle?布尔值 (boolean)如果为 true,则在 macOS 上隐藏窗口标题。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2381
javascriptDisabled?布尔值 (boolean)我们是否应该禁用 webview 上的 JavaScript 代码执行。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2463
maxHeight?数字最大高度。仅当 maxWidth 也设置时才适用。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2300
maxWidth?数字最大宽度。仅当 maxHeight 也设置时才适用。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2298
maximizable?布尔值 (boolean)窗口的本地最大化按钮是否启用。默认为 true来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2392
maximized?布尔值 (boolean)窗口是否应在创建时最大化。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2333
minHeight?数字最小高度。仅当 minWidth 也设置时才适用。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2296
minWidth?数字最小宽度。仅当 minHeight 也设置时才适用。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2294
minimizable?布尔值 (boolean)窗口的本地最小化按钮是否启用。默认为 true来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2396
parent?string | Window | WebviewWindow设置要创建的窗口的父级。可以是 Window 或窗口的标签。平台特定 - Windows:这将传入的父级设置为要创建的窗口的所有者窗口。来自 MSDN 拥有的窗口文档:- 拥有的窗口始终位于其所有者在 Z 顺序的上方。- 当所有者被销毁时,系统会自动销毁拥有的窗口。- 当所有者最小化时,拥有的窗口被隐藏。- Linux:这将使新窗口对父级瞬时,请参阅 https://docs.gtk.org.cn/gtk3/method.Window.set_transient_for.html - macOS:这将窗口添加为父级的子窗口,请参阅 https://developer.apple.com/documentation/appkit/nswindow/1419152-addchildwindow?language=objc来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2414
preventOverflow?boolean | PreventOverflowMargin在创建时防止窗口溢出工作区域(例如显示器大小 - 任务栏大小),这意味着窗口大小将限制为 显示器大小 - 任务栏大小。可以设置为 true 或 PreventOverflowMargin 对象,以设置在确定工作区域时应考虑的额外边距(在这种情况下,窗口大小将限制为 显示器大小 - 任务栏大小 - 边距)。注意:溢出检查仅在窗口创建时执行,调整大小仍然可能导致溢出。平台特定 - iOS / Android: 不支持。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2315
resizable?布尔值 (boolean)窗口是否可调整大小。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2317
shadow?布尔值 (boolean)窗口是否具有阴影。平台特定 - Windows: - false 对装饰窗口没有影响,阴影始终开启。 - true 会使无装饰窗口具有 1 像素的白色边框,并且在 Windows 11 上,它将具有圆角。 - Linux: 不支持。 2.0.0 起来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2359
skipTaskbar?布尔值 (boolean)窗口图标是否应添加到任务栏。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2345
tabbingIdentifier?字符串在 macOS 上定义窗口的 tabbing identifier。具有相同 tabbing identifier 的窗口将分组在一起。如果未设置 tabbing identifier,则将禁用自动 tabbing。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2388
theme?主题初始窗口主题。默认为系统主题。仅在 Windows 和 macOS 10.14+ 上实现。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2365
title?字符串窗口标题。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2319
titleBarStyle?标题栏样式macOS 标题栏的样式。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2369
trafficLightPosition?逻辑位置macOS 上窗口控制按钮的位置。需要 titleBarStyle: 'overlay'decorations: true 2.4.0 起来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2377
transparent?布尔值 (boolean)窗口是否透明。请注意,在 macOS 上,这需要 macos-private-api 功能标志,在 tauri.conf.json > app > macOSPrivateApi 下启用。警告:在 macOS 上使用私有 API 会阻止您的应用程序被 App Store 接受。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2331
visible?布尔值 (boolean)窗口是否应在创建时立即可见。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2335
visibleOnAllWorkspaces?布尔值 (boolean)窗口是否应在所有工作区或虚拟桌面上可见。平台特定 - Windows / iOS / Android: 不支持。 2.0.0 起来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2423
width?数字初始宽度。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2290
windowEffects?效果窗口效果。需要窗口是透明的。平台特定:- Windows:如果使用装饰或阴影,您可能需要尝试此解决方法 https://github.com/tauri-apps/tao/issues/72#issuecomment-975607891 - Linux:不支持来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2434
x?数字初始垂直位置。仅当 y 也设置时才适用。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2286
y?数字初始水平位置。仅当 x 也设置时才适用。来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2288

属性类型定义于
maxHeight?数字来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L197
maxWidth?数字来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L196
minHeight?数字来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L195
minWidth?数字来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L194

type CursorIcon:
| "default"
| "crosshair"
| "hand"
| "arrow"
| "move"
| "text"
| "wait"
| "help"
| "progress"
| "notAllowed"
| "contextMenu"
| "cell"
| "verticalText"
| "alias"
| "copy"
| "noDrop"
| "grab"
| "grabbing"
| "allScroll"
| "zoomIn"
| "zoomOut"
| "eResize"
| "nResize"
| "neResize"
| "nwResize"
| "sResize"
| "seResize"
| "swResize"
| "wResize"
| "ewResize"
| "nsResize"
| "neswResize"
| "nwseResize"
| "colResize"
| "rowResize";

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L129


type Theme: "light" | "dark";

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L63


type TitleBarStyle: "visible" | "transparent" | "overlay";

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L64

function availableMonitors(): Promise<Monitor[]>

返回系统上所有可用显示器的列表。

Promise<Monitor[]>

import { availableMonitors } from '@tauri-apps/api/window';
const monitors = await availableMonitors();

1.0.0

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2554


function currentMonitor(): Promise<Monitor | null>

返回窗口当前所在的显示器。如果无法检测到当前显示器,则返回 null

Promise<Monitor | null>

import { currentMonitor } from '@tauri-apps/api/window';
const monitor = await currentMonitor();

1.0.0

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2504


function cursorPosition(): Promise<PhysicalPosition>

获取光标相对于桌面左上角的位置。

请注意,桌面的左上角不一定与屏幕相同。如果用户使用多显示器桌面,Windows 和 macOS 上的桌面左上角是主显示器的左上角,而 X11 上是左侧显示器的左上角。

如果窗口的左上角位于可见屏幕区域之外,则坐标可能为负数。

Promise<PhysicalPosition>

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2570


function getAllWindows(): Promise<Window[]>

获取所有可用窗口的 Window 实例列表。

Promise<Window[]>

1.0.0

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L228


function getCurrentWindow(): Window

获取当前窗口的 Window 实例。

窗口

1.0.0

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L216


function monitorFromPoint(x, y): Promise<Monitor | null>

返回包含给定点的显示器。如果找不到任何显示器,则返回 null

参数类型
x数字
y数字

Promise<Monitor | null>

import { monitorFromPoint } from '@tauri-apps/api/window';
const monitor = await monitorFromPoint(100.0, 200.0);

1.0.0

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2537


function primaryMonitor(): Promise<Monitor | null>

返回系统的主显示器。如果无法将任何显示器识别为主显示器,则返回 null

Promise<Monitor | null>

import { primaryMonitor } from '@tauri-apps/api/window';
const monitor = await primaryMonitor();

1.0.0

来源https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/window.ts#L2521


© 2025 Tauri 贡献者。CC-BY / MIT