前言
在开发桌面端应用时,理解并正确配置窗口参数是至关重要的,这可以帮助我们更高效地实现功能和优化用户体验。
以下内容根据 Tauri 2 版本的官方文档整理了 WindowConfig
配置参数的详细说明,包括每个参数的功能描述、默认值及适用性。
基本窗口行为
参数名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
acceptFirstMouse | boolean | 窗口首次点击时是否响应鼠标事件(仅 macOS 支持)。 | false |
alwaysOnBottom | boolean | 窗口是否始终置于其他窗口下方。 | false |
alwaysOnTop | boolean | 窗口是否始终置于其他窗口上方。 | false |
backgroundColor | string | 窗口背景颜色(十六进制格式)。 | 无默认值 |
center | boolean | 窗口是否居中显示。 | false |
closable | boolean | 窗口是否可关闭。 | true |
contentProtected | boolean | 窗口内容是否保护,防止截图或录屏(部分平台支持)。 | false |
decorations | boolean | 是否显示窗口装饰(如标题栏和边框)。 | true |
dragDropEnabled | boolean | 是否启用拖放功能。 | true |
focus | boolean | 窗口是否在启动时获取焦点。 | true |
fullscreen | boolean | 是否启动全屏模式。 | false |
hiddenTitle | boolean | 是否隐藏窗口的标题栏(仅 macOS 支持)。 | false |
incognito | boolean | 是否启用隐私模式,防止记录浏览数据。 | false |
label | string | 窗口的唯一标识符,用于程序中引用该窗口(必填)。 | 无默认值 |
maximizable | boolean | 窗口是否可最大化。 | true |
maximized | boolean | 窗口是否启动时最大化。 | false |
minimizable | boolean | 窗口是否可最小化。 | true |
resizable | boolean | 窗口是否可调整大小。 | true |
skipTaskbar | boolean | 是否从任务栏中隐藏窗口(部分平台支持)。 | false |
tabbingIdentifier | string | 窗口的分组标识符(仅 macOS 支持)。 | 无默认值 |
theme | "light" 或 "dark" | 窗口的默认主题,仅部分平台支持。 | 系统默认主题 |
title | string | 窗口标题。 | "Tauri App" |
titleBarStyle | string | 窗口标题栏样式(部分平台支持,如 macOS)。 | 默认样式 |
transparent | boolean | 窗口是否透明(部分平台支持)。 | false |
userAgent | string | 窗口的自定义 User-Agent。 | 无默认值 |
visible | boolean | 窗口是否可见。 | true |
visibleOnAllWorkspaces | boolean | 是否在所有工作区显示窗口(仅 macOS 支持)。 | false |
windowClassname | string | 自定义窗口类名(仅 Windows 支持)。 | 无默认值 |
zoomHotkeysEnabled | boolean | 是否启用窗口缩放快捷键。 | true |
尺寸与位置
参数名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
width | number | 窗口的初始宽度(单位:像素)。 | 800 |
height | number | 窗口的初始高度(单位:像素)。 | 600 |
minWidth | number | 窗口的最小宽度(单位:像素)。 | 无默认值 |
minHeight | number | 窗口的最小高度(单位:像素)。 | 无默认值 |
maxWidth | number | 窗口的最大宽度(单位:像素)。 | 无默认值 |
maxHeight | number | 窗口的最大高度(单位:像素)。 | 无默认值 |
x | number | 窗口初始的 X 轴位置(相对于屏幕左上角)。 | 居中 |
y | number | 窗口初始的 Y 轴位置(相对于屏幕左上角)。 | 居中 |
浏览器特性
参数名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
additionalBrowserArgs | string | 启动浏览器时附加的命令行参数。 | 无默认值 |
browserExtensionsEnabled | boolean | 是否启用浏览器扩展支持。 | false |
proxyUrl | string | 自定义代理 URL。 | 无默认值 |
useHttpsScheme | boolean | 是否强制使用 HTTPS。 | false |
窗口效果
参数名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
shadow | boolean | 窗口是否显示阴影(部分平台支持)。 | true |
windowEffects | string | 自定义窗口效果(如模糊、透明等,部分平台支持)。 | 无默认值 |
JSON 格式
src-tauri/tauri.conf.json
{
"$schema": "https://schema.tauri.app/config/2.0.0",
"productName": "Coco AI",
"version": "0.1.0",
"identifier": "rs.coco.app",
"build": {
"beforeDevCommand": "pnpm dev",
"devUrl": "http://localhost:1420",
"beforeBuildCommand": "pnpm build",
"frontendDist": "../dist"
},
"app": {
"macOSPrivateApi": true,
"windows": [
{
"acceptFirstMouse": false, // 是否允许第一次鼠标事件被接受
"additionalBrowserArgs": "", // 传递给浏览器的其他参数
"alwaysOnBottom": false, // 窗口是否总是保持在底部
"alwaysOnTop": false, // 窗口是否总是保持在顶部
"backgroundColor": "#ffffff", // 窗口的背景色(默认为白色)
"browserExtensionsEnabled": false, // 是否启用浏览器扩展功能
"center": true, // 窗口是否居中
"closable": true, // 窗口是否可以被关闭
"contentProtected": false, // 是否启用内容保护(防止屏幕截图)
"create": true, // 是否在创建时显示窗口
"decorations": true, // 是否显示窗口装饰
"devtools": false, // 是否启用开发者工具(生产模式默认关闭)
"dragDropEnabled": true, // 是否启用拖放功能
"focus": true, // 窗口是否聚焦
"fullscreen": false, // 窗口是否全屏
"height": 600, // 窗口高度(默认 600px)
"hiddenTitle": false, // 隐藏窗口标题栏
"incognito": false, // 是否启用无痕模式
"label": "main", // 窗口的唯一标签(标识符)
"maxHeight": null, // 窗口最大高度(默认为不限制)
"maximizable": true, // 窗口是否可最大化
"maximized": false, // 窗口是否默认最大化
"maxWidth": null, // 窗口最大宽度(默认为不限制)
"minHeight": 300, // 窗口最小高度(默认 300px)
"minimizable": true, // 窗口是否可最小化
"minWidth": 300, // 窗口最小宽度(默认 300px)
"parent": null, // 窗口的父窗口(默认为无)
"proxyUrl": "", // 代理 URL
"resizable": true, // 窗口是否可调整大小
"shadow": true, // 是否显示窗口阴影
"skipTaskbar": false, // 是否跳过任务栏(窗口不显示在任务栏中)
"tabbingIdentifier": null, // 窗口分组的标识符
"theme": "light", // 窗口主题(默认为 light)
"title": "Tauri App", // 窗口标题
"titleBarStyle": "default", // 标题栏样式
"transparent": false, // 是否启用透明窗口
"url": "/", // 窗口的默认 URL
"useHttpsScheme": false, // 是否强制使用 HTTPS
"userAgent": null, // 自定义用户代理(默认为 null)
"visible": true, // 窗口是否可见
"visibleOnAllWorkspaces": false, // 窗口是否在所有工作区可见
"width": 800, // 窗口宽度(默认 800px)
"windowClassname": "", // 窗口类名(可自定义)
"windowEffects": null, // 窗口特效(默认为无)
"x": null, // 窗口初始位置的 X 坐标
"y": null, // 窗口初始位置的 Y 坐标
"zoomHotkeysEnabled": true // 是否启用缩放快捷键
}
],
"security": {
"csp": null
}
},
"bundle": {
"active": true,
"targets": "all",
"windows": {
"certificateThumbprint": null,
"digestAlgorithm": "sha256",
"timestampUrl": ""
},
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.icns",
"icons/icon.ico",
"icons/icon.png",
"icons/Square30x30Logo.png",
"icons/Square44x44Logo.png",
"icons/Square71x71Logo.png",
"icons/Square89x89Logo.png",
"icons/Square107x107Logo.png",
"icons/Square142x142Logo.png",
"icons/Square150x150Logo.png",
"icons/Square284x284Logo.png",
"icons/Square310x310Logo.png",
"icons/StoreLogo.png"
],
"macOS": {
"entitlements": "./Entitlements.plist",
"dmg": {
"appPosition": {
"x": 180,
"y": 140
},
"applicationFolderPosition": {
"x": 480,
"y": 140
}
}
},
"resources": ["assets", "icons"]
},
"plugins": {
"window": {},
"websocket": {},
"shell": {},
"globalShortcut": {}
}
}
小结
配置窗口参数是 Tauri 开发中至关重要的一步。
理解每个参数的用途和默认值,不仅有助于更高效地实现功能,还能避免潜在的跨平台兼容性问题。
在使用参数时,建议参考 Tauri 官方文档 以确保配置的准确性。
最近在做 Tauri 的项目,也就是 github.com/infinilabs/… 目前已经开源,项目正在进行中,也希望能去给个免费的 star 🌟。
个人也是第一次做 Tauri 项目,也是在不断摸索中学习,希望有志同道合的伙伴一起摸索,一起学习进步。