配置
Tauri 配置对象。从文件中读取,你可以在其中定义前端资产、配置打包器并定义托盘图标。
配置文件由 tauri init
命令生成,该命令位于 Tauri 应用程序的源代码目录 (src-tauri) 中。
生成后,你可以随意修改它以自定义 Tauri 应用程序。
默认情况下,配置文件定义为名为 tauri.conf.json
的 JSON 文件。
Tauri 还通过 config-json5
和 config-toml
Cargo 特性分别支持 JSON5 和 TOML 文件。JSON5 文件名必须是 tauri.conf.json
或 tauri.conf.json5
。TOML 文件名为 Tauri.toml
。
除了默认配置文件,Tauri 还可以从 tauri.linux.conf.json
、tauri.windows.conf.json
、tauri.macos.conf.json
、tauri.android.conf.json
和 tauri.ios.conf.json
(如果使用 Tauri.toml
格式,则为 Tauri.linux.toml
、Tauri.windows.toml
、Tauri.macos.toml
、Tauri.android.toml
和 Tauri.ios.toml
)读取平台特定配置,该配置将与主配置对象合并。
配置由以下对象组成:
tauri.config.json 文件示例
{ "productName": "tauri-app", "version": "0.1.0", "build": { "beforeBuildCommand": "", "beforeDevCommand": "", "devUrl": "https://:3000", "frontendDist": "../dist" }, "app": { "security": { "csp": null }, "windows": [ { "fullscreen": false, "height": 600, "resizable": true, "title": "Tauri App", "width": 800 } ] }, "bundle": {}, "plugins": {}}
对象属性:
- app
- build
- bundle
- 标识符 (必需)
- mainBinaryName
- plugins
- productName
- version
应用程序配置。
{ "enableGTKAppId": false, "macOSPrivateApi": false, "security": { "assetProtocol": { "enable": false, "scope": [] }, "capabilities": [], "dangerousDisableAssetCspModification": false, "freezePrototype": false, "pattern": { "use": "brownfield" } }, "windows": [], "withGlobalTauri": false}
构建配置。
{ "additionalWatchFolders": [], "removeUnusedCommands": false}
打包器配置。
{ "active": false, "android": { "minSdkVersion": 24 }, "createUpdaterArtifacts": false, "iOS": { "minimumSystemVersion": "14.0" }, "icon": [], "linux": { "appimage": { "bundleMediaFramework": false, "files": {} }, "deb": { "files": {} }, "rpm": { "epoch": 0, "files": {}, "release": "1" } }, "macOS": { "dmg": { "appPosition": { "x": 180, "y": 170 }, "applicationFolderPosition": { "x": 480, "y": 170 }, "windowSize": { "height": 400, "width": 660 } }, "files": {}, "hardenedRuntime": true, "minimumSystemVersion": "10.13" }, "targets": "all", "useLocalToolsDir": false, "windows": { "allowDowngrades": true, "certificateThumbprint": null, "digestAlgorithm": null, "nsis": null, "signCommand": null, "timestampUrl": null, "tsp": false, "webviewInstallMode": { "silent": true, "type": "downloadBootstrapper" }, "wix": null }}
字符串
以反向域名表示法(例如 com.tauri.example
)表示的应用程序标识符。此字符串在应用程序之间必须是唯一的,因为它用于系统配置,如 bundle ID 和 webview 数据目录的路径。此字符串只能包含字母数字字符 (A-Z、a-z 和 0-9)、连字符 (-) 和句点 (.)。
string
| null
覆盖应用程序主二进制文件名。
默认情况下,Tauri 使用 cargo
的输出二进制文件,通过设置此项,我们将在 tauri-cli
的 tauri build
命令中重命名该二进制文件,并将 tauri bundle
定向到该文件
如果可能,请更改包名
或设置名称字段
,如果这还不够并且你正在使用 nightly 版本,请考虑改用不同二进制名称
功能
注意:此配置不应包含二进制扩展名(例如 .exe
),我们将为你添加。
插件配置。
默认: {}
string
| null
模式为 ^[^/\:*?"<>|]+$
应用程序名称。
string
| null
应用程序版本。它是一个语义版本号或包含 version
字段的 package.json
文件的路径。
如果移除,则使用 Cargo.toml
中的版本号。建议在 Tauri 配置中管理应用程序版本。
- macOS:转换为 bundle 的 CFBundleShortVersionString 属性,并用作默认的 CFBundleVersion。你可以使用
bundle > macOS > bundleVersion
设置特定的 bundle 版本。 - iOS:转换为 bundle 的 CFBundleShortVersionString 属性,并用作默认的 CFBundleVersion。你可以使用
bundle > iOS > bundleVersion
设置特定的 bundle 版本。tauri ios build
CLI 命令有一个--build-number <number>
选项,允许你向应用程序版本追加构建号。 - Android:默认使用 1.0 版本。你可以使用
bundle > android > versionCode
设置版本代码。
在 Android 上默认使用 1.0 版本。
Android 目标的通用配置。
对象属性:
- minSdkVersion
- versionCode
integer
格式为 uint32
应用程序运行所需的最低 API 级别。如果系统的 API 级别低于指定值,Android 系统将阻止用户安装应用程序。
默认: 24
integer
| null
最大值 2100000000
,最小值 1
,格式为 uint32
应用程序的版本代码。根据 Google Play 商店的要求,其上限为 2,100,000,000。
默认情况下,我们使用你配置的版本并执行以下计算:versionCode = version.major * 1000000 + version.minor * 1000 + version.patch
应用程序配置对象。
更多信息请参见:<https://v2.tauri.org.cn/reference/config/#appconfig>
对象属性:
- enableGTKAppId
- macOSPrivateApi
- security
- trayIcon
- windows
- withGlobalTauri
布尔值 (boolean)
如果设置为 true,“identifier”将设置为 GTK 应用程序 ID(在使用 GTK 的系统上)。
布尔值 (boolean)
macOS 私有 API 配置。启用透明背景 API 并将 fullScreenEnabled
首选项设置为 true
。
安全配置。
{ "assetProtocol": { "enable": false, "scope": [] }, "capabilities": [], "dangerousDisableAssetCspModification": false, "freezePrototype": false, "pattern": { "use": "brownfield" }}
TrayIconConfig
| null
应用程序托盘图标的配置。
应用程序窗口配置。
默认: []
布尔值 (boolean)
是否应该在 window.__TAURI__
上注入 Tauri API。
AppImage 打包配置。
更多信息请参见:<https://v2.tauri.org.cn/reference/config/#appimageconfig>
对象属性:
- bundleMediaFramework
- files
布尔值 (boolean)
包含音频和视频播放所需的额外 gstreamer 依赖项。这会使 bundle 大小增加约 15-35MB,具体取决于你的构建系统。
要包含在 Appimage 二进制文件中的文件。
允许附加属性: string
默认: {}
资产自定义协议配置。
更多信息请参见:<https://v2.tauri.org.cn/reference/config/#assetprotocolconfig>
对象属性:
- 启用
- scope
布尔值 (boolean)
启用资产协议。
资产协议的访问范围。
默认: []
字符串
一个 [FileAssociation
] 的扩展。
开头的 .
会自动被删除。
以下其中之一:
"disabled"
后台节流禁用的策略"suspend"
不在窗口中的 web 视图完全暂停任务的策略。这通常是未设置策略时的默认行为。"throttle"
不在窗口中的 web 视图限制处理但不会完全暂停任务的策略。
后台节流策略。
以下任何一种:
string
使用默认选项运行给定的脚本。- 使用自定义选项运行给定脚本。 对象属性: - cwd - script(必需) - wait ##### cwd
string
|null
当前工作目录。 ##### scriptstring
要执行的脚本。 ##### waitboolean
tauri dev
是否应等待命令完成。默认为false
。
描述在 tauri dev
之前运行的 shell 命令。
构建配置对象。
更多信息请参见:<https://v2.tauri.org.cn/reference/config/#buildconfig>
对象属性:
- additionalWatchFolders
- beforeBuildCommand
- beforeBundleCommand
- beforeDevCommand
- devUrl
- features
- frontendDist
- removeUnusedCommands
- runner
字符串
[]
运行 tauri dev
时要监视的其他路径。
默认: []
HookCommand
| null
在 tauri build
开始之前运行的 shell 命令。
如果你执行条件编译,则设置 TAURI_ENV_PLATFORM、TAURI_ENV_ARCH、TAURI_ENV_FAMILY、TAURI_ENV_PLATFORM_VERSION、TAURI_ENV_PLATFORM_TYPE 和 TAURI_ENV_DEBUG 环境变量。
HookCommand
| null
在 tauri build
的打包阶段开始之前运行的 shell 命令。
如果你执行条件编译,则设置 TAURI_ENV_PLATFORM、TAURI_ENV_ARCH、TAURI_ENV_FAMILY、TAURI_ENV_PLATFORM_VERSION、TAURI_ENV_PLATFORM_TYPE 和 TAURI_ENV_DEBUG 环境变量。
BeforeDevCommand
| null
在 tauri dev
开始之前运行的 shell 命令。
如果你执行条件编译,则设置 TAURI_ENV_PLATFORM、TAURI_ENV_ARCH、TAURI_ENV_FAMILY、TAURI_ENV_PLATFORM_VERSION、TAURI_ENV_PLATFORM_TYPE 和 TAURI_ENV_DEBUG 环境变量。
string
| null
格式为 uri
开发时加载的 URL。
这通常是开发服务器的 URL,它通过热重载和 HMR 为你的应用程序资产提供服务。大多数现代 JavaScript 打包器,如 Vite,默认提供启动开发服务器的方法。
如果你没有开发服务器或不想使用,请忽略此选项,并使用 frontendDist
并指向 web 资产目录,Tauri CLI 将运行其内置的开发服务器并提供简单的热重载体验。
string
[] | null
传递给 cargo
命令的特性。
FrontendDist
| null
应用程序资产的路径(通常是 JavaScript 打包器的 dist
文件夹),或者可以是 Tauri 应用程序中注册的自定义协议(例如:myprotocol://
)或远程 URL(例如:https://site.com/app
)。
当提供相对于配置文件的路径时,它将被递归读取,所有文件都嵌入到应用程序二进制文件中。Tauri 然后寻找 index.html
并将其作为应用程序的默认入口点。
你还可以提供要嵌入的路径列表,这允许对添加到二进制文件中的文件进行精细控制。在这种情况下,所有文件都添加到根目录,你必须在 HTML 文件中以这种方式引用它们。
当提供 URL 时,应用程序将没有捆绑资产,应用程序将默认加载该 URL。
布尔值 (boolean)
尝试在 tauri build
期间根据 ACL 列表删除插件注册的未使用命令,其工作原理是 tauri-cli 将读取此项并为构建脚本和宏设置环境变量,它们将尝试获取所有允许的命令并删除其余的命令。
注意
- 这不包括使用
dynamic-acl
(目前默认启用)特性标志中的功能时动态添加的 ACL,因此在使用此功能时务必检查。 - 此功能需要 tauri-plugin 2.1 和 tauri 2.4。
RunnerConfig
| null
用于构建和运行应用程序的二进制文件。
Tauri 打包器配置。
更多信息请参见:<https://v2.tauri.org.cn/reference/config/#bundleconfig>
对象属性:
- active
- android
- category
- copyright
- createUpdaterArtifacts
- externalBin
- fileAssociations
- homepage
- icon
- iOS
- license
- licenseFile
- linux
- longDescription
- macOS
- publisher
- resources
- shortDescription
- targets
- useLocalToolsDir
- windows
布尔值 (boolean)
Tauri 是否应该打包你的应用程序或只输出可执行文件。
Android 配置。
{ "minSdkVersion": 24}
string
| null
应用程序类型。
应为以下之一:Business(商业)、DeveloperTool(开发工具)、Education(教育)、Entertainment(娱乐)、Finance(金融)、Game(游戏)、ActionGame(动作游戏)、AdventureGame(冒险游戏)、ArcadeGame(街机游戏)、BoardGame(棋盘游戏)、CardGame(纸牌游戏)、CasinoGame(赌场游戏)、DiceGame(骰子游戏)、EducationalGame(教育游戏)、FamilyGame(家庭游戏)、KidsGame(儿童游戏)、MusicGame(音乐游戏)、PuzzleGame(益智游戏)、RacingGame(赛车游戏)、RolePlayingGame(角色扮演游戏)、SimulationGame(模拟游戏)、SportsGame(体育游戏)、StrategyGame(策略游戏)、TriviaGame(问答游戏)、WordGame(文字游戏)、GraphicsAndDesign(图形与设计)、HealthcareAndFitness(健康与健身)、Lifestyle(生活方式)、Medical(医疗)、Music(音乐)、News(新闻)、Photography(摄影)、Productivity(生产力)、Reference(参考)、SocialNetworking(社交)、Sports(体育)、Travel(旅行)、Utility(实用工具)、Video(视频)、Weather(天气)。
string
| null
与你的应用程序相关的版权字符串。
是否生成更新器及其签名
string
[] | null
要与应用程序一起嵌入的二进制文件路径列表(绝对或相对路径)。
请注意,Tauri 将根据模式“binary-name{-target-triple}{.system-extension}”查找系统特定的二进制文件。
例如,对于外部二进制文件“my-binary”,Tauri 会查找
- Windows 对应的“my-binary-x86_64-pc-windows-msvc.exe”
- macOS 对应的“my-binary-x86_64-apple-darwin”
- Linux 对应的“my-binary-x86_64-unknown-linux-gnu”
因此,请不要忘记为所有目标平台提供二进制文件。
FileAssociation
[] | null
文件关联到应用程序。
string
| null
你的应用程序主页的 URL。如果未设置,将回退到 Cargo.toml
中定义的 homepage
。
支持的 bundle 目标:deb
、rpm
、nsis
和 msi
。
字符串
[]
应用程序图标
默认: []
iOS 配置。
{ "minimumSystemVersion": "14.0"}
string
| null
要包含在相应捆绑包中的软件包许可证标识符。如果未设置,则默认为 Cargo.toml 文件中的许可证。
string
| null
要包含在相应捆绑包中的许可证文件路径。
Linux 捆绑包配置。
{ "appimage": { "bundleMediaFramework": false, "files": {} }, "deb": { "files": {} }, "rpm": { "epoch": 0, "files": {}, "release": "1" }}
string
| null
应用程序的较长多行描述。
macOS Bundles 的配置。
{ "dmg": { "appPosition": { "x": 180, "y": 170 }, "applicationFolderPosition": { "x": 480, "y": 170 }, "windowSize": { "height": 400, "width": 660 } }, "files": {}, "hardenedRuntime": true, "minimumSystemVersion": "10.13"}
string
| null
应用程序的发布者。默认为标识符字符串中的第二个元素。
如果 Cargo.toml 没有 authors 字段,则当前映射到 Windows Installer 的 Manufacturer 属性和 debian 包的 Maintainer 字段。
BundleResources
| null
要捆绑的应用程序资源。每个资源都是一个文件或目录的路径。支持 Glob 模式。
string
| null
应用程序的简短描述。
捆绑目标,目前支持 [“deb”, “rpm”, “appimage”, “nsis”, “msi”, “app”, “dmg”] 或 “all”。
默认: "all"
布尔值 (boolean)
构建此应用程序时,是否使用项目的 target
目录来缓存构建工具(例如 Wix 和 NSIS)。默认为 false
。
如果为 true,工具将缓存到 target/.tauri/
。如果为 false,工具将缓存到当前用户的平台特定缓存目录。
一个适合将此设置为 true
的示例是当作为 Windows 系统用户(例如 AWS EC2 工作负载)构建此应用程序时,因为 Windows 系统的应用程序数据目录受到限制。
Windows 捆绑包的配置。
{ "allowDowngrades": true, "certificateThumbprint": null, "digestAlgorithm": null, "nsis": null, "signCommand": null, "timestampUrl": null, "tsp": false, "webviewInstallMode": { "silent": true, "type": "downloadBootstrapper" }, "wix": null}
以下任何一种:
string
[] 要包含的路径列表。- 源路径到目标路径的映射。允许其他属性:
string
捆绑资源定义。可以是要包含的路径列表,也可以是源路径到目标路径的映射。
以下任何一种:
"all"
捆绑所有目标。BundleType
[] 捆绑目标列表。BundleType
单个捆绑目标。
要捆绑的目标。每个值都不区分大小写。
以下其中之一:
"deb"
Debian 捆绑包 (.deb)。"rpm"
RPM 捆绑包 (.rpm)。"appimage"
AppImage 捆绑包 (.appimage)。"msi"
Microsoft Installer 捆绑包 (.msi)。"nsis"
NSIS 捆绑包 (.exe)。"app"
macOS 应用程序捆绑包 (.app)。"dmg"
Apple Disk Image 捆绑包 (.dmg)。
由 tauri-bundler 引用的捆绑包。
以下其中之一:
"Editor"
CFBundleTypeRole.Editor。文件可读可编辑。"Viewer"
CFBundleTypeRole.Viewer。文件可读。"Shell"
CFBundleTypeRole.Shell"QLGenerator"
CFBundleTypeRole.QLGenerator"None"
CFBundleTypeRole.None
仅 macOS。对应 CFBundleTypeRole
开发者可以用来隔离对 IPC 层的访问的分组和边界机制。
它控制应用程序窗口和 Webview 对 Tauri 核心、应用程序或插件命令的细粒度访问。如果 Webview 或其窗口不匹配任何功能,则完全无法访问 IPC 层。
这可以根据所需的系统访问来创建窗口组,从而减少低权限窗口中前端漏洞的影响。窗口可以通过确切名称(例如 main-window
)或 glob 模式(例如 *
或 admin-*
)添加到功能中。一个窗口可以具有零个、一个或多个关联功能。
{ "identifier": "main-user-files-write", "description": "This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.", "windows": [ "main" ], "permissions": [ "core:default", "dialog:open", { "identifier": "fs:allow-write-text-file", "allow": [{ "path": "$HOME/test.txt" }] }, ], "platforms": ["macOS","windows"]}
对象属性:
- 描述
- 标识符 (必需)
- 本地
- 权限(必填)
- 平台
- 远程
- webviews
- windows
字符串
此功能旨在允许关联窗口的描述。
它应包含对分组权限应允许的内容的描述。
此功能允许 main
窗口访问 filesystem
写入相关命令和 dialog
命令,以启用对用户选择的文件的编程访问。
字符串
功能标识符。
main-user-files-write
布尔值 (boolean)
此功能是否为本地应用程序 URL 启用。默认为 true
。
默认: true
PermissionEntry
[] 每个项目必须唯一
附加到此功能的权限列表。
必须以 ${plugin-name}:${permission-name}
的形式包含插件名称作为前缀。对于直接在应用程序本身中实现的命令,只需 ${permission-name}
。
[ "core:default", "shell:allow-open", "dialog:open", { "identifier": "fs:allow-write-text-file", "allow": [{ "path": "$HOME/test.txt" }] }]
Target
[] | null
限制此功能适用于哪些目标平台。
默认情况下,所有平台都被定位。
["macOS","windows"]
CapabilityRemote
| null
配置可以使用功能权限的远程 URL。
此设置是可选的,默认情况下不设置,因为我们的默认用例是内容从我们的本地应用程序提供。
{ "urls": ["https://*.mydomain.dev"]}
字符串
[]
受此功能影响的 webview 列表。可以是 glob 模式。
无论 webview 的窗口标签是否与 [Self::windows
] 中的模式匹配,该功能都将在其标签与此列表中的任何模式匹配的所有 webview 上启用。
["sub-webview-one", "sub-webview-two"]
字符串
[]
受此功能影响的窗口列表。可以是 glob 模式。
如果窗口标签与此列表中的任何模式匹配,则无论 [Self::webviews
] 的值如何,该功能都将在此窗口的所有 webview 上启用。
在多 webview 窗口上,建议指定 [Self::webviews
] 并省略 [Self::windows
] 以实现细粒度访问控制。
["main"]
以下任何一种:
Capability
内联功能。string
引用功能标识符。
功能条目,可以是内联功能,也可以是对独立文件中定义的功能的引用。
与功能相关的远程 URL 配置。
对象属性:
- urls(必填)
字符串
[]
此功能引用的远程域,使用 URLPattern 标准。
- “https://*.mydomain.dev”:允许 mydomain.dev 的子域
- “https://mydomain.dev/api/*”:允许 mydomain.dev/api 的任何子路径
以下任何一种:
string
模式^#?([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$
颜色十六进制字符串,例如:#fff、#ffffff 或 #ffffffff。integer
格式为uint8
|integer
格式为uint8
|integer
格式为uint8
[] 最多3
项,最少3
项 RGB 颜色数组。每个值的最小值为 0,最大值为 255。integer
格式为uint8
|integer
格式为uint8
|integer
格式为uint8
|integer
格式为uint8
[] 最多4
项,最少4
项 RGBA 颜色数组。每个值的最小值为 0,最大值为 255。- 红色、绿色、蓝色、Alpha 颜色值的对象。每个值的最小值为 0,最大值为 255。对象属性:- alpha - blue (必填) - green (必填) - red (必填) ##### alpha
integer
格式为uint8
默认:255
##### blueinteger
格式为uint8
##### greeninteger
格式为uint8
##### redinteger
格式为uint8
以下任何一种:
string
整个 CSP 策略在一个文本字符串中。- 将指令映射到其源值作为字符串列表的对象。允许其他属性:
CspDirectiveSources
内容安全策略定义。请参阅 <https://mdn.org.cn/en-US/docs/Web/HTTP/CSP>。
以下任何一种:
string
CSP 源的内联列表。与 [Self::List
] 相同,但用空格分隔符连接。string
[] CSP 源列表。该集合将用空格分隔符连接起来,形成 CSP 字符串。
内容安全策略指令源列表。请参阅 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources>。
以下任何一种:
string
要执行的脚本的字符串表示法。“%1”将被替换为要签名的二进制文件路径。这是一种更简单的命令表示法。Tauri 将用' '
分割字符串,并将第一个元素用作命令名称,其余用作参数。如果需要在命令或参数中使用空格,请使用对象表示法 [Self::ScriptWithOptions
]。- 命令的对象表示法。这是一种更复杂的命令表示法,但它允许在命令和参数中使用空格。对象属性:- args (必填) - cmd (必填) ##### args
string
[] 要传递给命令的参数。“%1”将被替换为要签名的二进制文件路径。##### cmdstring
运行以签名二进制文件的命令。
自定义签名命令配置。
Debian (.deb) 捆绑包配置。
查看更多:<https://v2.tauri.org.cn/reference/config/#debconfig>
对象属性:
- 更改日志
- 冲突
- 依赖
- 桌面模板
- files
- 安装后脚本
- 删除后脚本
- 安装前脚本
- 删除前脚本
- 优先级
- 提供
- 推荐
- 替换
- 部分
string
| null
未压缩的变更日志文件路径,将存储在 /usr/share/doc/package-name/changelog.gz。请参阅 <https://www.debian.org/doc/debian-policy/ch-docs.html#changelog-files-and-release-notes>
string
[] | null
包冲突列表。
string
[] | null
您的应用程序所依赖的 deb 依赖项列表。
string
| null
自定义桌面文件 Handlebars 模板的路径。
可用变量:categories
、comment
(可选)、exec
、icon
和 name
。
要包含在包中的文件。
允许附加属性: string
默认: {}
string
| null
包解压后将执行的脚本路径。请参阅 <https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html>
string
| null
包删除后将执行的脚本路径。请参阅 <https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html>
string
| null
包解压前将执行的脚本路径。请参阅 <https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html>
string
| null
包删除前将执行的脚本路径。请参阅 <https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html>
string
| null
更改 Debian 包的优先级。默认设置为 optional
。目前已识别的优先级有:required
、important
、standard
、optional
、extra
string
[] | null
包提供的依赖项列表。
string
[] | null
您的应用程序推荐的 deb 依赖项列表。
string
[] | null
替换的包列表。
string
| null
在 Debian Control 文件中定义部分。请参阅:https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections
以下任何一种:
boolean
如果为true
,则禁用所有 CSP 修改。false
是默认值,它配置 Tauri 以控制 CSP。string
[] 禁用给定 CSP 指令修改列表。
dangerous_disable_asset_csp_modification
配置选项的可能值。
Apple 磁盘映像 (.dmg) 捆绑包配置。
查看更多:<https://v2.tauri.org.cn/reference/config/#dmgconfig>
对象属性:
- 应用程序文件夹位置
- 应用程序位置
- 背景
- 窗口位置
- 窗口大小
窗口上应用程序文件夹的位置。
{ "x": 480, "y": 170}
窗口上应用程序文件的位置。
{ "x": 180, "y": 170}
string
| null
用作 dmg 文件背景的图像。支持的格式:png
/jpg
/gif
。
Position
| null
屏幕上卷窗口的位置。
卷窗口的大小。
{ "height": 400, "width": 660}
文件关联
对象属性:
- 描述
- ext(必填)
- mimeType
- 名称 (name)
- rank
- role
string
| null
关联描述。仅限 Windows。在 Windows 资源管理器的 Type
列中显示。
与此应用程序关联的文件扩展名。例如:“png”
string
| null
MIME 类型,例如“image/png”或“text/plain”。仅限 Linux。
string
| null
名称。映射到 macOS 上的 CFBundleTypeName
。默认为 ext[0]
此应用程序在将自己声明为给定文件类型的编辑器或查看器应用程序中的排名。映射到 macOS 上的 LSHandlerRank
。
默认: "Default"
应用程序对于该类型的角色。映射到 macOS 上的 CFBundleTypeRole
。
默认: "Editor"
以下任何一种:
string
格式为uri
作为默认应用程序 URL 的外部 URL。string
前端 dist 资产所在目录的路径。string
[] 要嵌入到应用程序中的文件数组。
定义要嵌入到应用程序中的 URL 或资产。
以下任何一种:
string
[] 此作用域允许的路径列表。- 完整的范围配置。对象属性:- allow - deny - requireLiteralLeadingDot ##### allow
string
[] 此范围允许的路径列表。默认:[]
##### denystring
[] 此范围不允许的路径列表。此列表的优先级高于 [Self::Scope::allow
] 列表。默认:[]
##### requireLiteralLeadingDotboolean
|null
包含以.
开头的组件的路径是否需要.
在模式中字面出现;*
、?
、**
或[...]
不会匹配。这很有用,因为此类文件通常在 Unix 系统上被视为隐藏文件,并且在列出文件时可能希望跳过它们。在 Unix 系统上默认为true
,在 Windows 上默认为false
协议范围定义。它是一个全局模式列表,限制 webview 对 API 的访问。
每个模式都可以以解析为系统基本目录的变量开头。这些变量包括:$AUDIO
、$CACHE
、$CONFIG
、$DATA
、$LOCALDATA
、$DESKTOP
、$DOCUMENT
、$DOWNLOAD
、$EXE
、$FONT
、$HOME
、$PICTURE
、$PUBLIC
、$RUNTIME
、$TEMPLATE
、$VIDEO
、$RESOURCE
、$APP
、$LOG
、$TEMP
、$APPCONFIG
、$APPDATA
、$APPLOCALDATA
、$APPCACHE
、$APPLOG
。
以下其中之一:
"Default"
LSHandlerRank.Default。此应用程序是此类文件的开启者;如果未指定排名,也使用此值。"Owner"
LSHandlerRank.Owner。此应用程序是此类文件的主要创建者。"Alternate"
LSHandlerRank.Alternate。此应用程序是此类文件的次要查看器。"None"
LSHandlerRank.None。此应用程序永远不会被选中以打开此类文件,但它接受此类文件的拖放。
对应 LSHandlerRank
一个结构,其中键是一些特定的 HTTP 头名称。
如果定义了这些键的值,则它们将作为响应消息的一部分发送。这不包括错误消息和 IPC 消息
{ //.. app:{ //.. security: { headers: { "Cross-Origin-Opener-Policy": "same-origin", "Cross-Origin-Embedder-Policy": "require-corp", "Timing-Allow-Origin": [ "https://mdn.org.cn", "https://example.com", ], "Access-Control-Expose-Headers": "Tauri-Custom-Header", "Tauri-Custom-Header": { "key1": "'value1' 'value2'", "key2": "'value3'" } }, csp: "default-src 'self'; connect-src ipc: http://ipc.localhost", } //.. } //..}
在此示例中,Cross-Origin-Opener-Policy
和 Cross-Origin-Embedder-Policy
设置为允许使用 SharedArrayBuffer
。结果是,这些头文件随后在通过 crates/tauri/src/protocol/tauri.rs 中的 get_response
函数发送的每个响应上设置。Content-Security-Policy 头文件单独定义,因为它也单独处理。
对于 helloworld 示例,此配置转换为以下响应头
access-control-allow-origin: http://tauri.localhostaccess-control-expose-headers: Tauri-Custom-Headercontent-security-policy: default-src 'self'; connect-src ipc: http://ipc.localhost; script-src 'self' 'sha256-Wjjrs6qinmnr+tOry8x8PPwI77eGpUFR3EEGZktjJNs='content-type: text/htmlcross-origin-embedder-policy: require-corpcross-origin-opener-policy: same-origintauri-custom-header: key1 'value1' 'value2'; key2 'value3'timing-allow-origin: https://mdn.org.cn, https://example.com
由于生成的头值始终是“字符串类型”。因此,根据 HeaderSource 的数据类型,它们需要进行转换。
String
(JS/Rust):对于生成的头值保持不变Array
(JS)/Vec\<String\>
(Rust):项目通过 ”, ” 连接,用于生成的头值Object
(JS)/Hashmap\<String,String\>
(Rust):项目由:键 + 空格 + 值组成。然后项目通过 ”; ” 连接,用于生成的头值
对象属性:
- Access-Control-Allow-Credentials
- Access-Control-Allow-Headers
- Access-Control-Allow-Methods
- Access-Control-Expose-Headers
- Access-Control-Max-Age
- Cross-Origin-Embedder-Policy
- Cross-Origin-Opener-Policy
- Cross-Origin-Resource-Policy
- Permissions-Policy
- Service-Worker-Allowed
- Tauri-Custom-Header
- Timing-Allow-Origin
- X-Content-Type-Options
HeaderSource
| null
Access-Control-Allow-Credentials 响应头告诉浏览器服务器是否允许跨域 HTTP 请求包含凭据。
请参阅 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials>
HeaderSource
| null
Access-Control-Allow-Headers 响应头用于响应包含 Access-Control-Request-Headers 的预检请求,以指示在实际请求期间可以使用哪些 HTTP 头。
如果请求具有 Access-Control-Request-Headers 头,则此头是必需的。
请参阅 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers>
HeaderSource
| null
Access-Control-Allow-Methods 响应头指定了在响应预检请求时访问资源所允许的一个或多个方法。
详见 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods>
HeaderSource
| null
Access-Control-Expose-Headers 响应头允许服务器指示在响应跨域请求时,哪些响应头应该对浏览器中运行的脚本可用。
详见 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers>
HeaderSource
| null
Access-Control-Max-Age 响应头指示预检请求的结果(即 Access-Control-Allow-Methods 和 Access-Control-Allow-Headers 头中包含的信息)可以被缓存多久。
详见 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age>
HeaderSource
| null
HTTP Cross-Origin-Embedder-Policy (COEP) 响应头配置了将跨源资源嵌入到文档中。
详见 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy>
HeaderSource
| null
HTTP Cross-Origin-Opener-Policy (COOP) 响应头允许您确保顶级文档不与跨源文档共享浏览上下文组。COOP 将对您的文档进行进程隔离,如果潜在攻击者通过弹出窗口打开您的文档,他们将无法访问您的全局对象,从而防止了一系列被称为 XS-Leaks 的跨源攻击。
详见 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy>
HeaderSource
| null
HTTP Cross-Origin-Resource-Policy 响应头表示希望浏览器阻止对给定资源的 no-cors 跨源/跨站请求。
详见 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Cross-Origin-Resource-Policy>
HeaderSource
| null
HTTP Permissions-Policy 头提供了一种机制,用于允许和拒绝在文档中或文档内的任何 <iframe> 元素中使用浏览器功能。
详见 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Permissions-Policy>
HeaderSource
| null
HTTP Service-Worker-Allowed 响应头用于放宽服务工作者默认作用域的路径限制。
默认情况下,服务工作者注册的作用域是服务工作者脚本所在的目录。例如,如果脚本 sw.js
位于 /js/sw.js
,它默认只能控制 /js/
下的 URL。服务器可以使用 Service-Worker-Allowed
头来允许服务工作者控制其自身目录之外的 URL。
详见 <https://mdn.org.cn/en-US/docs/Web/HTTP/Reference/Headers/Service-Worker-Allowed>
HeaderSource
| null
一个自定义的 Tauri-Custom-Header 头字段,不要使用它。请记住相应地设置 Access-Control-Expose-Headers
不适用于生产环境
HeaderSource
| null
Timing-Allow-Origin 响应头指定了允许哪些源通过资源计时 API 查看属性值,否则这些属性值将因跨源限制而被报告为零。
详见 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Timing-Allow-Origin>
HeaderSource
| null
X-Content-Type-Options 响应 HTTP 头是一个标记,服务器用它来指示应遵循 Content-Type 头中声明的 MIME 类型,而不应更改。此头通过声明 MIME 类型是经过有意配置的,从而避免了 MIME 类型嗅探。
详见 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options>
以下任何一种:
string
头值的字符串版本string
[] 头值的列表版本。各项通过“,”连接形成实际的头值- (Rust struct | Json | JavaScript Object) 头值的等效形式。各项由:键 + 空格 + 值组成。然后各项通过“;”连接形成实际的头值。允许附加属性:
string
头源的定义
头名称的头值
以下任何一种:
string
使用默认选项运行给定的脚本。- 使用自定义选项运行给定脚本。对象属性: - cwd - script (必需) ##### cwd
string
|null
当前工作目录。 ##### scriptstring
要执行的脚本。
描述当 CLI 钩子触发时要执行的 shell 命令。
字符串
iOS 目标通用配置。
对象属性:
- bundleVersion
- developmentTeam
- frameworks
- minimumSystemVersion
- template
string
| null
标识捆绑包迭代的构建版本。
转换为捆绑包的 CFBundleVersion 属性。
string
| null
开发团队。iOS 开发需要此值,因为强制执行代码签名。APPLE_DEVELOPMENT_TEAM
环境变量可用于覆盖它。
string
[] | null
指示需要与应用程序捆绑的任何 iOS 框架的字符串列表。
请注意,您需要重新创建 iOS 项目才能应用更改。
字符串
表示捆绑应用程序支持的最低 iOS 版本的版本字符串。默认为 13.0
。
映射到 IPHONEOS_DEPLOYMENT_TARGET 值。
默认值:"14.0"
string
| null
要使用的自定义 XcodeGen project.yml 模板。
Linux 捆绑包配置。
详见:<https://v2.tauri.org.cn/reference/config/#linuxconfig>
对象属性:
- appimage
- deb
- rpm
AppImage 捆绑包的配置。
{ "bundleMediaFramework": false, "files": {}}
Debian 捆绑包的配置。
{ "files": {}}
RPM 捆绑包的配置。
{ "epoch": 0, "files": {}, "release": "1"}
位置坐标结构体。
对象属性:
- x (必需)
- y (必需)
number
格式为 double
X 坐标。
number
格式为 double
Y 坐标。
macOS Bundles 的配置。
详见:<https://v2.tauri.org.cn/reference/config/#macconfig>
对象属性:
- bundleName
- bundleVersion
- dmg
- entitlements
- exceptionDomain
- files
- frameworks
- hardenedRuntime
- minimumSystemVersion
- providerShortName
- signingIdentity
string
| null
构建捆绑包的构建器的名称。
转换为捆绑包的 CFBundleName 属性。
如果未设置,默认为包的产品名称。
string
| null
标识捆绑包迭代的构建版本。
转换为捆绑包的 CFBundleVersion 属性。
DMG 特定设置。
{ "appPosition": { "x": 180, "y": 170 }, "applicationFolderPosition": { "x": 480, "y": 170 }, "windowSize": { "height": 400, "width": 660 }}
string
| null
entitlements 文件的路径。
string
| null
允许您的应用程序与外界通信。它应该是一个小写、不带端口和协议的域名。
要包含在应用程序中的文件(相对于 Contents 目录)。
允许附加属性: string
默认: {}
string
[] | null
指示需要与应用程序捆绑的任何 macOS X 框架的字符串列表。
如果使用名称,则必须省略“.framework”,它将查找标准安装位置。您也可以使用特定框架的路径。
布尔值 (boolean)
代码签名是否应启用 hardened runtime(适用于可执行文件)。
默认: true
string
| null
表示捆绑应用程序支持的最低 macOS X 版本的版本字符串。默认为 10.13
。
将其设置为 null
将完全删除捆绑包的 Info.plist
中的 LSMinimumSystemVersion
字段和 MACOSX_DEPLOYMENT_TARGET
环境变量。
空字符串被视为无效值,因此将使用默认值。
默认值:"10.13"
string
| null
公证机构的简短名称。
string
| null
用于代码签名的身份。
以下其中之一:
"zlib"
ZLIB 使用 deflate 算法,这是一种快速简单的压缩方法。使用默认压缩级别时,它占用约 300 KB 内存。"bzip2"
BZIP2 通常提供比 ZLIB 更好的压缩比,但它稍慢,并占用更多内存。使用默认压缩级别时,它占用约 4 MB 内存。"lzma"
LZMA (默认) 是一种新的压缩方法,提供非常好的压缩比。解压缩速度快(在 2 GHz CPU 上为 10-20 MB/s),压缩速度较慢。解压缩将使用的内存大小是字典大小加上几 KB,默认值为 8 MB。"none"
禁用压缩
NSIS 安装程序中使用的压缩算法。
详见 <https://nsis.sourceforge.io/Reference/SetCompressor>
使用 NSIS 的安装程序捆绑包配置。
对象属性:
- compression
- customLanguageFiles
- displayLanguageSelector
- headerImage
- installerHooks
- installerIcon
- installMode
- languages
- minimumWebview2Version
- sidebarImage
- startMenuFolder
- template
设置用于压缩安装程序中文件的压缩算法。
详见 <https://nsis.sourceforge.io/Reference/SetCompressor>
默认值:"lzma"
| null
一个键值对,其中键是语言,值是自定义 .nsh
文件的路径,该文件包含 Tauri 自定义消息的翻译文本。
有关示例 .nsh
文件,请参阅 <https://github.com/tauri-apps/tauri/blob/dev/crates/tauri-bundler/src/bundle/windows/nsis/languages/English.nsh>。
注意:键必须是有效的 NSIS 语言,并且必须添加到 [NsisConfig
] 语言数组中。
允许附加属性: string
布尔值 (boolean)
是否在安装程序和卸载程序窗口渲染之前显示语言选择器对话框。默认情况下,选择操作系统语言,并回退到 languages
数组中的第一种语言。
string
| null
用于在安装程序页面标题中显示的位图文件路径。
推荐尺寸为 150px x 57px。
string
| null
包含要挂接到主 installer.nsi 脚本的特殊 NSIS 宏的 .nsh
文件路径。
支持的钩子包括
NSIS_HOOK_PREINSTALL
:此钩子在复制文件、设置注册表键值和创建快捷方式之前运行。NSIS_HOOK_POSTINSTALL
:此钩子在安装程序完成复制所有文件、设置注册表键和创建快捷方式之后运行。NSIS_HOOK_PREUNINSTALL
:此钩子在删除任何文件、注册表键和快捷方式之前运行。NSIS_HOOK_POSTUNINSTALL
:此钩子在文件、注册表键和快捷方式被删除之后运行。
!macro NSIS_HOOK_PREINSTALL MessageBox MB_OK "PreInstall"!macroend
!macro NSIS_HOOK_POSTINSTALL MessageBox MB_OK "PostInstall"!macroend
!macro NSIS_HOOK_PREUNINSTALL MessageBox MB_OK "PreUnInstall"!macroend
!macro NSIS_HOOK_POSTUNINSTALL MessageBox MB_OK "PostUninstall"!macroend
string
| null
用作安装程序图标的图标文件路径。
安装是针对所有用户还是仅针对当前用户。
默认值:"currentUser"
string
[] | null
安装程序语言列表。默认使用操作系统语言。如果操作系统语言不在语言列表中,则将使用第一种语言。要允许用户选择语言,请将 display_language_selector
设置为 true
。
有关完整的语言列表,请参阅 <https://github.com/kichik/nsis/tree/9465c08046f00ccb6eda985abbdbf52c275c6c4d/Contrib/Language%20files>。
string
| null
尽量确保 WebView2 版本等于或晚于此版本;如果用户的 WebView2 版本早于此版本,安装程序将尝试触发 WebView2 更新。
string
| null
欢迎页和完成页的位图文件路径。
推荐尺寸为 164px x 314px。
string
| null
设置开始菜单快捷方式的文件夹名称。
如果您有多个应用程序并希望将它们的快捷方式分组到一个文件夹中,或者您通常更喜欢将快捷方式设置在文件夹内,请使用此选项。
示例
AwesomePublisher
,快捷方式将放置在%AppData%\Microsoft\Windows\Start Menu\Programs\AwesomePublisher\<your-app>.lnk
- 如果未设置,快捷方式将放置在
%AppData%\Microsoft\Windows\Start Menu\Programs\<your-app>.lnk
string
| null
要使用的自定义 .nsi 模板。
以下其中之一:
"currentUser"
安装程序的默认模式。默认将应用程序安装到不需要管理员权限的目录中。安装程序元数据将保存在HKCU
注册表路径下。"perMachine"
默认将应用程序安装到Program Files
文件夹目录中,安装需要管理员权限。安装程序元数据将保存在HKLM
注册表路径下。"both"
结合两种模式,允许用户在安装时选择是为当前用户安装还是为每台机器安装。请注意,即使用户只想为当前用户安装,此模式也需要管理员权限。安装程序元数据将根据用户的选择保存在HKLM
或HKCU
注册表路径下。
NSIS 安装程序的安装模式。
以下任何一种:
integer
格式为int64
,表示 [i64
]。number
格式为double
,表示 [f64
]。
一个有效的 ACL 数字。
以下其中之一:
- Brownfield 模式。对象属性: - use (必需) ##### use
"brownfield"
- 隔离模式。推荐用于安全目的。对象属性: - options (必需) - use (必需) ##### options 对象属性: - dir (必需) ###### dir
string
包含安全隔离应用程序的 index.html 文件的目录。 ##### use"isolation"
应用程序模式。
以下任何一种:
Identifier
按标识符引用权限或权限集。- 按标识符引用权限或权限集并扩展其范围。对象属性: - allow - deny - identifier (必需) ##### allow
Value
[] |null
定义范围允许的数据。 ##### denyValue
[] |null
定义范围拒绝的数据。应优先验证此数据。 ##### identifierIdentifier
权限或权限集的标识符。
权限值在 [Capability
] 中的条目可以是原始权限 [Identifier
],也可以是引用权限并扩展其范围的对象。
插件配置包含一个将插件名称映射到其配置对象的 HashMap。
详见:<https://v2.tauri.org.cn/reference/config/#pluginconfig>
允许附加属性:true
位置坐标结构体。
对象属性:
- x (必需)
- y (必需)
integer
格式为 uint32
X 坐标。
integer
格式为 uint32
Y 坐标。
以下任何一种:
boolean
是否启用防止溢出PreventOverflowMargin
启用带边距的防溢出,使窗口大小 + 此边距不会溢出工作区
带边距的防溢出
启用带边距的防溢出,使窗口大小 + 此边距不会溢出工作区
对象属性:
- height (必需)
- width (必需)
integer
格式为 uint32
物理单位的垂直边距
integer
格式为 uint32
物理单位的水平边距
以下其中之一:
- Gzip 压缩 对象属性: - level (必需) - type (必需) ##### level
integer
格式为uint32
Gzip 压缩级别 ##### type"gzip"
- Zstd 压缩 对象属性: - level (必需) - type (必需) ##### level
integer
格式为int32
Zstd 压缩级别 ##### type"zstd"
- Xz 压缩 对象属性: - level (必需) - type (必需) ##### level
integer
格式为uint32
Xz 压缩级别 ##### type"xz"
- Bzip2 压缩 对象属性: - level (必需) - type (必需) ##### level
integer
格式为uint32
Bzip2 压缩级别 ##### type"bzip2"
- 禁用压缩 对象属性: - type (必需) ##### type
"none"
捆绑 RPM 包时使用的压缩算法。
RPM 捆绑包的配置。
对象属性:
- compression
- 冲突
- 依赖
- 桌面模板
- epoch
- files
- obsoletes
- 安装后脚本
- 删除后脚本
- 安装前脚本
- 删除前脚本
- 提供
- 推荐
- release
RpmCompression
| null
压缩算法和级别。默认为 Gzip
级别 6。
string
[] | null
您的应用程序与哪些 RPM 依赖项冲突的列表。它们必须不存在才能安装包。
string
[] | null
您的应用程序依赖的 RPM 依赖项列表。
string
| null
自定义桌面文件 Handlebars 模板的路径。
可用变量:categories
、comment
(可选)、exec
、icon
和 name
。
integer
格式为 uint32
RPM 纪元。
要包含在包中的文件。
允许附加属性: string
默认: {}
string
[] | null
您的应用程序取代的 RPM 依赖项列表——如果安装此包,则列为“obsoletes”的包将自动删除(如果存在)。
string
| null
包解压后将执行的脚本路径。详见 <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>
string
| null
包移除后将执行的脚本路径。详见 <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>
string
| null
包解压前将执行的脚本路径。详见 <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>
string
| null
包移除前将执行的脚本路径。详见 <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>
string
[] | null
您的应用程序提供的 RPM 依赖项列表。
string
[] | null
您的应用程序推荐的 RPM 依赖项列表。
字符串
RPM 发行标签。
默认值:"1"
以下任何一种:
string
指定要运行的二进制文件的字符串。- 具有高级配置选项的对象。对象属性: - args - cmd (必需) - cwd ##### args
string
[] |null
传递给命令的参数。 ##### cmdstring
要运行的二进制文件。 ##### cwdstring
|null
运行命令的当前工作目录。
运行器配置。
安全配置。
详见:<https://v2.tauri.org.cn/reference/config/#securityconfig>
对象属性:
- assetProtocol
- capabilities
- csp
- dangerousDisableAssetCspModification
- devCsp
- freezePrototype
- headers
- pattern
自定义协议配置。
{ "enable": false, "scope": []}
应用程序上启用的功能列表。
默认情况下(未设置或空列表),将包含 ./capabilities/
中的所有功能文件。通过在此条目中设置值,您可以精细控制包含哪些功能。
您可以引用 ./capabilities/
中定义的功能文件(通过其标识符)或内联 [Capability
]。
{ "app": { "capabilities": [ "main-window", { "identifier": "drag-window", "permissions": ["core:window:allow-start-dragging"] } ] }}
默认: []
Csp
| null
将注入到构建应用程序中所有 HTML 文件上的内容安全策略。如果未指定 dev_csp
,此值也将在开发环境中注入。
这是配置中非常重要的一部分,因为它有助于您确保 WebView 的安全。详见 <https://mdn.org.cn/en-US/docs/Web/HTTP/CSP>。
禁用 Tauri 注入的 CSP 源。
在编译时,Tauri 会解析所有前端资产并更改 Content-Security-Policy,通过注入随机数和哈希源,仅允许加载您自己的脚本和样式。这会严格限制您的 CSP,这可能会在使用其他弹性源时引入问题。
此配置选项允许布尔值和字符串列表作为值。布尔值指示 Tauri 禁用所有 CSP 注入,字符串列表指示 Tauri 不能注入的 CSP 指令。
警告: 仅当您知道自己在做什么并已正确配置 CSP 时才禁用此功能。没有 Tauri 保护,您的应用程序可能会受到 XSS 攻击。
Csp
| null
将在开发阶段注入到所有 HTML 文件中的内容安全策略。
这是配置中非常重要的一部分,因为它有助于您确保 WebView 的安全。详见 <https://mdn.org.cn/en-US/docs/Web/HTTP/CSP>。
布尔值 (boolean)
使用自定义协议时冻结 Object.prototype
。
HeaderConfig
| null
添加到 Tauri 到 web 视图的每个 http 响应中的标头。这不包括 IPC 消息和错误响应。
要使用的模式。
{ "use": "brownfield"}
窗口大小。
对象属性:
- height (必需)
- width (必需)
integer
格式为 uint32
窗口高度。
integer
格式为 uint32
窗口宽度。
以下其中之一:
"macOS"
macOS。"windows"
Windows。"linux"
Linux。"android"
Android。"iOS"
iOS。
平台目标。
以下其中之一:
"Light"
亮色主题。"Dark"
暗色主题。
系统主题。
以下其中之一:
"Visible"
普通标题栏。"Transparent"
使标题栏透明,显示窗口背景颜色。如果您不需要在标题栏下方有实际的 HTML,则此功能很有用。这可以避免使用TitleBarStyle::Overlay
的注意事项。当 Tauri 允许您设置自定义窗口背景颜色时,它将更有用。"Overlay"
将标题栏显示为窗口内容上的透明叠加层。请记住: - 标题栏的高度在不同的操作系统版本上是不同的,这可能导致窗口控件和标题不在您不期望的位置。 - 您需要定义一个自定义拖动区域才能使您的窗口可拖动,但是由于限制,当窗口未聚焦时无法拖动窗口 https://github.com/tauri-apps/tauri/issues/4316。 - 窗口标题的颜色取决于系统主题。
macOS 上窗口标题栏的显示方式。
应用程序托盘图标的配置。
查看更多:https://v2.tauri.org.cn/reference/config/#trayiconconfig
对象属性:
- iconAsTemplate
- iconPath (必需)
- ID
- menuOnLeftClick
- showMenuOnLeftClick
- 标题
- tooltip
布尔值 (boolean)
一个布尔值,用于确定图像是否表示 macOS 上的模板图像。
字符串
托盘图标默认图标的路径。
注意:这将图像以原始像素存储到最终二进制文件中,因此请保持图标大小(宽度和高度)小,否则会使最终可执行文件膨胀。
string
| null
为此托盘图标设置一个 ID,以便您以后可以引用它,默认为 main
。
布尔值 (boolean)
一个布尔值,用于确定当托盘图标收到左键单击时菜单是否应出现。
- Linux:不支持。
默认: true
布尔值 (boolean)
一个布尔值,用于确定当托盘图标收到左键单击时菜单是否应出现。
- Linux:不支持。
默认: true
string
| null
macOS 托盘的标题
string
| null
Windows 和 macOS 上的托盘图标工具提示。
以下任何一种:
V1Compatible
生成旧版 v1 兼容更新程序。boolean
是否生成更新程序及其签名。
更新程序类型。
"v1Compatible"
,生成旧版 zip 压缩的 v1 兼容更新程序
生成旧版 zip 压缩的 v1 兼容更新程序。
以下任何一种:
null
表示一个空 JSON 值。boolean
表示一个 [bool
] 值。Number
表示一个有效的 ACL [Number
] 值。string
表示一个 [String
] 值。Value
[] 表示其他 [Value
] 值的列表。- 表示从 [
String
] 键到 [Value
] 值的映射。允许附加属性:Value
所有支持的 ACL 值。
以下其中之一:
- 不将 Webview2 作为 Windows 安装程序的一部分进行安装。 对象属性:- 类型(必需) ##### 类型
"skip"
- 下载并运行引导程序。需要互联网连接。安装程序大小更小,但不建议在 Windows 7 上使用。 对象属性:- silent - 类型(必需) ##### silent
boolean
指示安装程序以静默模式运行引导程序。默认为true
。 默认:true
##### 类型"downloadBootstrapper"
- 嵌入并运行引导程序。需要互联网连接。安装程序大小增加约 1.8MB,但在 Windows 7 上提供更好的支持。 对象属性:- silent - 类型(必需) ##### silent
boolean
指示安装程序以静默模式运行引导程序。默认为true
。 默认:true
##### 类型"embedBootstrapper"
- 嵌入离线安装程序并运行它。不需要互联网连接。安装程序大小增加约 127MB。 对象属性:- silent - 类型(必需) ##### silent
boolean
指示安装程序以静默模式运行安装程序。默认为true
。 默认:true
##### 类型"offlineInstaller"
- 嵌入一个固定版本的 webview2 并在运行时使用它。这将使安装程序大小增加约 180MB。 对象属性:- path(必需)- 类型(必需) ##### path
string
要使用的固定运行时路径。固定版本可以从官方网站下载。.cab
文件必须解压到一个文件夹,并且该文件夹路径必须在此字段中定义。 ##### 类型"fixedRuntime"
Webview2 运行时的安装模式。请注意,对于更新程序包,使用 [Self::DownloadBootstrapper
]。
更多信息请参见 https://v2.tauri.org.cn/distribute/windows-installer/#webview2-installation-options。
以下任何一种:
string
格式为uri
的外部 URL。必须使用http
或https
方案。string
应用程序 URL 的路径部分。例如,要加载tauri:///users/john
,您只需在此配置中提供users/john
。string
格式为uri
的自定义协议 URL,例如doom://index.html
。
要在 Tauri webview 窗口中打开的 URL。
窗口配置对象。
查看更多:https://v2.tauri.org.cn/reference/config/#windowconfig
对象属性:
- acceptFirstMouse
- additionalBrowserArgs
- allowLinkPreview
- alwaysOnBottom
- alwaysOnTop
- backgroundColor
- backgroundThrottling
- browserExtensionsEnabled
- center
- 可关闭
- contentProtected
- create
- 装饰
- devtools
- disableInputAccessoryView
- dragDropEnabled
- focus
- 可聚焦
- 全屏
- 高度
- hiddenTitle
- incognito
- javascriptDisabled
- 标签
- maxHeight
- 可最大化
- maximized
- maxWidth
- minHeight
- 可最小化
- minWidth
- parent
- preventOverflow
- proxyUrl
- 可调整大小
- shadow
- skipTaskbar
- tabbingIdentifier
- 主题
- 标题
- titleBarStyle
- trafficLightPosition
- transparent
- url
- useHttpsScheme
- userAgent
- visible
- visibleOnAllWorkspaces
- 宽度
- windowClassname
- windowEffects
- x
- y
- zoomHotkeysEnabled
布尔值 (boolean)
在 macOS 上,点击非活动窗口是否也会点击 webview。
string
| null
在 Windows 上定义额外的浏览器参数。默认情况下,wry 会传递 --disable-features=msWebOOUI,msPdfOOUI,msSmartScreenProtection
,因此如果您使用此方法,如果需要,您还需要自行禁用这些组件。
布尔值 (boolean)
在 macOS 和 iOS 上,长按链接会出现链接预览,默认启用此功能。参见 https://docs.rs/objc2-web-kit/latest/objc2_web_kit/struct.WKWebView.html#method.allowsLinkPreview
默认: true
布尔值 (boolean)
窗口是否应始终位于其他窗口下方。
布尔值 (boolean)
窗口是否应始终位于其他窗口之上。
Color
| null
设置窗口和 webview 背景颜色。
- Windows:窗口层的 alpha 通道将被忽略。
- Windows:在 Windows 7 上,webview 层的 alpha 通道将被忽略。
- Windows:在 Windows 8 及更高版本上,如果 alpha 通道不为
0
,它将被 webview 层忽略。
BackgroundThrottlingPolicy
| null
更改默认的后台节流行为。
默认情况下,浏览器使用一种挂起策略,在大约 5 分钟后,当视图最小化或隐藏时,它会限制计时器甚至卸载整个选项卡(视图)以释放资源。这将暂停所有任务,直到文档的可见性状态从隐藏变为可见(通过将视图带回前台)。
- Linux / Windows / Android:不支持。像挂起的 WebLock 事务这样的变通方法可能就足够了。
- iOS:自 17.0+ 版本起支持。
- macOS:自 14.0+ 版本起支持。
参见 https://github.com/tauri-apps/tauri/issues/5250#issuecomment-2569380578
布尔值 (boolean)
浏览器扩展是否可以安装到 webview 进程
- Windows:启用 WebView2 环境的
AreBrowserExtensionsEnabled
- macOS / Linux / iOS / Android - 不支持。
布尔值 (boolean)
窗口是否居中启动。
布尔值 (boolean)
窗口的原生关闭按钮是否启用。
- Linux:“GTK+ 将尽力说服窗口管理器不显示关闭按钮。根据系统不同,此功能在已可见的窗口上调用时可能不起作用。”
- iOS / Android: 不支持。
默认: true
布尔值 (boolean)
防止窗口内容被其他应用程序捕获。
布尔值 (boolean)
Tauri 是否应在应用程序启动时创建此窗口。
当此项设置为 false
时,您必须手动通过 app.config().app.windows
获取配置对象,并使用 WebviewWindowBuilder::from_config
创建它。
默认: true
布尔值 (boolean)
窗口是否应该有边框和标题栏。
默认: true
boolean
| null
启用通常称为浏览器开发者工具的 Web Inspector。默认启用。
此 API 在调试构建中有效,但在发布构建中需要 devtools
功能标志才能启用它。
- macOS:这将在 macOS 上调用私有函数。
- Android:在 Chrome 中打开
chrome://inspect/#devices
以获取开发者工具窗口。Wry 的WebView
开发者工具 API 不支持 Android。 - iOS:打开 Safari > 开发 > [您的设备名称] > [您的 WebView] 以获取开发者工具窗口。
布尔值 (boolean)
允许在 iOS 上禁用输入附件视图。
附件视图是当文本输入元素获得焦点时出现在键盘上方的视图。它通常显示带有“完成”、“下一步”按钮的视图。
布尔值 (boolean)
webview 上是否启用拖放功能。默认启用。
在 Windows 上,禁用此功能是使用前端 HTML5 拖放所必需的。
默认: true
布尔值 (boolean)
窗口是否会初始聚焦。
默认: true
布尔值 (boolean)
窗口是否可聚焦。
默认: true
布尔值 (boolean)
窗口是否以全屏模式启动。
number
格式为 double
窗口高度。
默认:600
布尔值 (boolean)
如果为 true
,则在 macOS 上将窗口标题设置为隐藏。
布尔值 (boolean)
webview 是否应以隐身模式启动。
- Android:不支持。
布尔值 (boolean)
我们是否应该禁用 webview 上的 JavaScript 代码执行。
字符串
窗口标识符。必须是字母数字。
默认:"main"
number
| null
格式为 double
窗口最大高度。
布尔值 (boolean)
窗口的本地最大化按钮是否启用。如果 resizable 设置为 false,则此设置将被忽略。
- macOS: 禁用窗口标题栏中的“缩放”按钮,该按钮也用于进入全屏模式。
- Linux / iOS / Android: 不支持。
默认: true
布尔值 (boolean)
窗口是否最大化。
number
| null
格式为 double
窗口最大宽度。
number
| null
格式为 double
窗口最小高度。
布尔值 (boolean)
窗口的原生最小化按钮是否启用。
- Linux / iOS / Android: 不支持。
默认: true
number
| null
格式为 double
窗口最小宽度。
string
| null
将与此标签关联的窗口设置为要创建的窗口的父级。
- Windows:这会将传递的父级设置为要创建窗口的所有者窗口。来自 MSDN 拥有的窗口文档
- 拥有窗口始终位于其所有者之上。
- 当所有者被销毁时,系统会自动销毁拥有的窗口。
- 当所有者最小化时,拥有的窗口将被隐藏。
- 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
PreventOverflowConfig
| null
是否阻止窗口溢出工作区
- iOS / Android: 不支持。
string
| null
格式为 uri
用于 WebView 所有网络请求的代理 URL。
必须是 http://
或 socks5://
URL。
- macOS:需要
macos-proxy
功能标志,并且仅编译用于 macOS 14+。
布尔值 (boolean)
窗口是否可调整大小。当 resizable 设置为 false 时,原生窗口的最大化按钮会自动禁用。
默认: true
布尔值 (boolean)
窗口是否具有阴影。
- Windows
false
对装饰窗口没有影响,阴影始终开启。true
将使无装饰窗口有 1 像素的白色边框,在 Windows 11 上,它将有圆角。
- Linux: 不支持。
默认: true
布尔值 (boolean)
如果为 true
,则在 Windows 和 Linux 上隐藏任务栏中的窗口图标。
string
| null
为 macOS 定义窗口标签标识符。
具有匹配标签标识符的窗口将被分组。如果未设置标签标识符,将禁用自动标签。
Theme
| null
初始窗口主题。默认为系统主题。仅在 Windows 和 macOS 10.14+ 上实现。
字符串
窗口标题。
默认:"Tauri App"
macOS 标题栏的样式。
默认:"Visible"
LogicalPosition
| null
macOS 上窗口控件的位置。
需要 titleBarStyle: Overlay 和 decorations: true。
布尔值 (boolean)
窗口是否透明。
请注意,在 macOS
上,这需要 macos-private-api
功能标志,在 tauri > macOSPrivateApi
下启用。警告:在 macOS
上使用私有 API 会阻止您的应用程序被 App Store
接受。
窗口 webview URL。
默认:"index.html"
布尔值 (boolean)
设置自定义协议在 Windows 和 Android 上是否应使用 https://<scheme>.localhost
而不是默认的 http://<scheme>.localhost
。默认为 false
。
使用 https
方案在尝试获取 http
端点时不会允许混合内容,因此不会与 macOS 和 Linux 上使用的 <scheme>://
协议的行为相匹配。
在版本之间更改此值将更改 IndexedDB、cookie 和本地存储的位置,您的应用程序将无法访问旧数据。
string
| null
webview 的用户代理。
布尔值 (boolean)
窗口是否可见。
默认: true
布尔值 (boolean)
窗口是否应在所有工作区或虚拟桌面上可见。
- Windows / iOS / Android: 不支持。
number
格式为 double
窗口宽度。
默认:800
string
| null
在 Windows 上创建窗口时使用的窗口类名称。 仅限 Windows。
WindowEffectsConfig
| null
窗口效果。
需要窗口透明。
- Windows:如果使用装饰或阴影,您可能需要尝试此解决方法 https://github.com/tauri-apps/tao/issues/72#issuecomment-975607891
- Linux:不支持
number
| null
格式为 double
窗口左上角的水平位置
number
| null
格式为 double
窗口左上角的垂直位置
布尔值 (boolean)
是否启用通过快捷键进行页面缩放
-
Windows:控制 WebView2 的
IsZoomControlEnabled
设置。 -
macOS / Linux:注入一个 polyfill,通过
ctrl/command
+-/=
进行缩放,每步缩放 20%,范围从 20% 到 1000%。需要webview:allow-set-webview-zoom
权限 -
Android / iOS:不支持。
以下其中之一:
"appearanceBased"
适合视图有效外观的默认材质。 macOS 10.14-"light"
macOS 10.14-"dark"
macOS 10.14-"mediumLight"
macOS 10.14-"ultraDark"
macOS 10.14-"titlebar"
macOS 10.10+"selection"
macOS 10.10+"menu"
macOS 10.11+"popover"
macOS 10.11+"sidebar"
macOS 10.11+"headerView"
macOS 10.14+"sheet"
macOS 10.14+"windowBackground"
macOS 10.14+"hudWindow"
macOS 10.14+"fullScreenUI"
macOS 10.14+"tooltip"
macOS 10.14+"contentBackground"
macOS 10.14+"underWindowBackground"
macOS 10.14+"underPageBackground"
mac,OS 10.14+"mica"
与系统暗色偏好匹配的 Mica 效果 仅限 Windows 11"micaDark"
带有暗色模式的 Mica 效果,但仅在系统启用暗色模式时有效 仅限 Windows 11"micaLight"
带有亮色模式的 Mica 效果 仅限 Windows 11"tabbed"
与系统暗色偏好匹配的 Tabbed 效果 仅限 Windows 11"tabbedDark"
带有暗色模式的 Tabbed 效果,但仅在系统启用暗色模式时有效 仅限 Windows 11"tabbedLight"
带有亮色模式的 Tabbed 效果 仅限 Windows 11"blur"
仅限 Windows 7/10/11(22H1) ##### 注意 此效果在 Windows 11 Build 22621 上调整窗口大小/拖动时性能不佳。"acrylic"
仅限 Windows 10/11 ##### 注意 此效果在 Windows 10 v1903+ 和 Windows 11 Build 22000 上调整窗口大小/拖动时性能不佳。
平台特定的窗口效果
窗口效果配置对象
对象属性:
- 颜色
- 效果 (必填)
- 半径
- 状态
Color
| null
窗口效果颜色。仅在 Windows 10 v1903+ 上影响 [WindowEffect::Blur
] 和 [WindowEffect::Acrylic
]。在 Windows 7 或 Windows 11 上无效。
要应用于窗口的窗口效果列表。冲突的效果将应用第一个并忽略其余的。
number
| null
格式为 double
窗口效果圆角半径 仅限 macOS
WindowEffectState
| null
窗口效果状态 仅限 macOS
以下其中之一:
"followsWindowActiveState"
使窗口效果状态跟随窗口的活动状态"active"
使窗口效果状态始终处于活动状态"inactive"
使窗口效果状态始终处于非活动状态
窗口效果状态 仅限 macOS
https://developer.apple.com/documentation/appkit/nsvisualeffectview/state
Windows 打包器配置。
查看更多:https://v2.tauri.org.cn/reference/config/#windowsconfig
对象属性:
- allowDowngrades
- certificateThumbprint
- digestAlgorithm
- nsis
- signCommand
- timestampUrl
- tsp
- webviewInstallMode
- wix
布尔值 (boolean)
验证第二个应用程序安装,如果设置为 false
,则阻止用户安装旧版本。
例如,如果安装了 1.2.1
,用户将无法安装应用程序版本 1.2.0
或 1.1.5
。
此标志的默认值为 true
。
默认: true
string
| null
指定签名证书的 SHA1 哈希值。
string
| null
指定用于创建文件签名的文件摘要算法。代码签名必需。建议使用 SHA-256。
NsisConfig
| null
NSIS 生成的安装程序配置。
CustomSignCommandConfig
| null
指定用于签名二进制文件的自定义命令。此命令需要在参数中包含一个 %1
,它只是二进制文件路径的占位符,我们会在调用命令之前检测并替换它。
默认情况下,我们使用 signtool.exe
,它只能在 Windows 上找到,因此如果您在其他平台上并希望交叉编译和签名,则需要使用其他工具,例如 osslsigncode
。
string
| null
时间戳服务器。
布尔值 (boolean)
是否使用时间戳协议 (TSP,又称 RFC 3161) 作为时间戳服务器。您的代码签名提供商可能使用 TSP 时间戳服务器,例如 SSL.com。如果是,请将 TSP 设置为 true 以启用。
Webview2 运行时的安装模式。
{ "silent": true, "type": "downloadBootstrapper"}
WixConfig
| null
使用 WiX 生成的 MSI 配置。
使用 WiX 进行 MSI 捆绑的配置。
查看更多:https://v2.tauri.org.cn/reference/config/#wixconfig
对象属性:
- bannerPath
- componentGroupRefs
- componentRefs
- dialogImagePath
- enableElevatedUpdateTask
- featureGroupRefs
- featureRefs
- fipsCompliant
- fragmentPaths
- language
- mergeRefs
- template
- upgradeCode
- version
string
| null
用作安装用户界面横幅的位图文件路径。此位图将显示在安装程序所有页面(第一页除外)的顶部。
所需尺寸为 493 像素 × 58 像素。
字符串
[]
您想要从片段中引用的 ComponentGroup 元素 ID。
默认: []
字符串
[]
您想要从片段中引用的 Component 元素 ID。
默认: []
string
| null
用作安装用户界面对话框上的位图文件路径。它用于欢迎和完成对话框。
所需尺寸为 493 像素 × 312 像素。
布尔值 (boolean)
在 Windows 任务计划程序中创建提升的更新任务。
字符串
[]
您想要从片段中引用的 FeatureGroup 元素 ID。
默认: []
字符串
[]
您想要从片段中引用的 Feature 元素 ID。
默认: []
布尔值 (boolean)
启用 FIPS 兼容算法。也可以通过 TAURI_BUNDLER_WIX_FIPS_COMPLIANT
环境变量启用。
字符串
[]
要使用的 WiX 片段 .wxs 文件路径列表。
默认: []
要构建的安装程序语言。请参阅 https://docs.microsoft.com/en-us/windows/win32/msi/localizing-the-error-and-actiontext-tables。
默认:"en-US"
字符串
[]
您想要从片段中引用的 Merge 元素 ID。
默认: []
string
| null
要使用的自定义 .wxs 模板。
string
| null
格式为 uuid
MSI 安装程序的 GUID 升级代码。此代码在所有更新中必须保持不变,否则 Windows 会将您的更新视为一个不同的应用程序,并且您的用户将拥有您应用程序的重复版本。
默认情况下,tauri 使用字符串 <productName>.exe.app.x64
在 DNS 命名空间中生成 Uuid v5 来生成此代码。您可以使用 Tauri 的 CLI 为您生成并打印此代码,运行 tauri inspect wix-upgrade-code
。
建议您在 tauri 配置文件中设置此值,以避免在您更改产品名称时升级代码意外更改。
string
| null
MSI 安装程序版本,格式为 major.minor.patch.build
(build 是可选的)。
由于 MSI 安装程序需要有效版本,如果未设置此字段,则将从 [Config::version
] 派生。
第一个字段是主版本,最大值为 255。第二个字段是次版本,最大值为 255。第三个和第四个字段的最大值为 65,535。
更多信息请参阅 https://learn.microsoft.com/en-us/windows/win32/msi/productversion。
以下任何一种:
string
要构建的单一语言,无需配置。string
[] 要构建的语言列表,无需配置。- 语言及其配置的映射。允许额外属性:
WixLanguageConfig
要使用 WiX 构建的语言。
WiX 构建目标语言的配置。
查看更多:https://v2.tauri.org.cn/reference/config/#wixlanguageconfig
对象属性:
- localePath
string
| null
区域设置 (.wxl
) 文件的路径。请参阅 https://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/build_a_localized_version.html。
© 2025 Tauri 贡献者。CC-BY / MIT