配置
Tauri 配置对象。它是从文件中读取的,你可以在该文件中定义前端资源、配置打包程序并定义托盘图标。
配置文件由位于 Tauri 应用源码目录(src-tauri)中的 tauri init 命令生成。
生成后,你可以根据需要随时修改它,以自定义你的 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
App(应用)配置。
{ "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": { "autoIncrementVersionCode": false, "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, "minimumWebview2Version": null, "nsis": null, "signCommand": null, "timestampUrl": null, "tsp": false, "webviewInstallMode": { "silent": true, "type": "downloadBootstrapper" }, "wix": null }}string
以反向域名表示法表示的应用程序标识符(例如 com.tauri.example)。此字符串在各应用程序之间必须是唯一的,因为它用于系统配置,如 Bundle ID 和 Webview 数据目录的路径。此字符串必须仅包含字母数字字符(A-Z、a-z 和 0-9)、连字符 (-) 和句点 (.)。
string | null
覆盖应用程序的主二进制文件名。
默认情况下,Tauri 使用 cargo 的输出二进制文件。通过设置此项,我们将在 tauri-cli 的 tauri build 命令中重命名该二进制文件,并将 tauri bundle 指向它。
如果可能,请更改 package name 或设置 name 字段;如果这还不够,并且你正在使用 nightly 版本,请考虑使用 different-binary-name 功能。
注意:此配置不应包含二进制扩展名(例如 .exe),我们会为你添加它。
插件配置。
默认:{}
string | null,模式为 ^[^/\:*?"<>|]+$
应用名称。
string | null
应用版本。这是一个语义化版本号,或者是包含 version 字段的 package.json 文件的路径。
如果删除,将使用 Cargo.toml 中的版本号。建议在 Tauri 配置中管理应用版本。
- macOS:转换为包的 CFBundleShortVersionString 属性,并用作默认的 CFBundleVersion。你可以使用
bundle > macOS > bundleVersion设置特定的包版本。 - iOS:转换为包的 CFBundleShortVersionString 属性,并用作默认的 CFBundleVersion。你可以使用
bundle > iOS > bundleVersion设置特定的包版本。tauri ios buildCLI 命令有一个--build-number <number>选项,允许你将构建号附加到应用版本上。 - Android:默认使用 1.0 版本。你可以使用
bundle > android > versionCode设置版本代码。
Android 默认使用 1.0 版本。
Android 目标的通用配置。
对象属性:
- autoIncrementVersionCode(自动递增版本代码)
- debugApplicationIdSuffix(调试应用程序 ID 后缀)
- minSdkVersion(最低 SDK 版本)
- versionCode(版本代码)
布尔值 (boolean)
是否在每次构建时自动递增 versionCode。
- 如果为
true,生成器将尝试从tauri.properties读取上一个versionCode,并为每次构建递增 1。 - 如果为
false或未设置,它将回退到version_code或基于语义化版本的逻辑。
注意,要使用此功能,你应该从 src-tauri/gen/android/app/.gitignore 中删除 /tauri.properties,以便将当前的 versionCode 提交到仓库中。
string | null
用于调试构建的应用程序 ID 后缀。这允许在同一设备上并排安装调试版本和发布版本。例如:“.debug”将使调试版本使用“com.example.app.debug”作为应用程序 ID。
integer,格式为 uint32
应用程序运行所需的最低 API 级别。如果系统的 API 级别低于指定值,Android 系统将阻止用户安装该应用程序。
默认:24
integer | null,最大为 2100000000,最小为 1,格式为 uint32
应用程序的版本代码。根据 Google Play 商店要求,其最大值为 2,100,000,000。
默认情况下,我们使用你配置的版本并执行以下计算:versionCode = 版本.主版本号 * 1000000 + 版本.次版本号 * 1000 + 版本.修订号
以下其中之一:
"send"ACTION_SEND。 <https://developer.android.com.cn/reference/android/content/Intent#ACTION_SEND>"sendMultiple"ACTION_SEND_MULTIPLE。 <https://developer.android.com.cn/reference/android/content/Intent#ACTION_SEND_MULTIPLE>"view"ACTION_VIEW。 <https://developer.android.com.cn/reference/android/content/Intent#ACTION_SEND>
Android 意图操作。
App(应用)配置对象。
查看更多:<https://v2.tauri.org.cn/reference/config/#appconfig>
对象属性:
- enableGTKAppId(启用 GTK 应用 ID)
- macOSPrivateApi(macOS 私有 API)
- security(安全)
- trayIcon(托盘图标)
- windows
- withGlobalTauri(包含全局 Tauri)
布尔值 (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
应用托盘图标配置。
应用程序窗口配置。
在应用启动时创建一个窗口
{ "app": { "windows": [ { "width": 800, "height": 600 } ] }}如果未指定,窗口的标签(其标识符)默认为“main”,你可以使用此标签通过 Rust 中的 app.get_webview_window 或 JavaScript 中的 WebviewWindow.getByLabel 获取该窗口。
当使用多个窗口时,每个窗口都需要一个唯一的标签。
{ "app": { "windows": [ { "label": "main", "width": 800, "height": 600 }, { "label": "secondary", "width": 800, "height": 600 } ] }}你也可以将 create 设置为 false,并通过 Rust API 使用此配置。
{ "app": { "windows": [ { "create": false, "width": 800, "height": 600 } ] }}并像这样使用它
tauri::Builder::default() .setup(|app| { tauri::WebviewWindowBuilder::from_config(app.handle(), &app.config().app.windows[0])?.build()?; Ok(()) });默认:[]
布尔值 (boolean)
是否应该在 window.__TAURI__ 上注入 Tauri API。
AppImage 打包配置。
查看更多:<https://v2.tauri.org.cn/reference/config/#appimageconfig>
对象属性:
- bundleMediaFramework(打包媒体框架)
- files(文件)
布尔值 (boolean)
包含音频和视频播放所需的额外 gstreamer 依赖项。根据你的构建系统,这会增加约 15-35MB 的包大小。
要包含在 AppImage 二进制文件中的文件。
允许附加属性:string
默认:{}
资产自定义协议的配置。
查看更多:<https://v2.tauri.org.cn/reference/config/#assetprotocolconfig>
对象属性:
- 启用
- scope(范围)
布尔值 (boolean)
启用资产协议。
资产协议的访问范围。
默认:[]
string
[FileAssociation] 的扩展名。
开头的 . 会被自动去除。
以下其中之一:
"disabled":禁用后台节流的策略。"suspend":当 Webview 不在窗口中时完全挂起任务的策略。如果没有设置策略,这通常是默认行为。"throttle":当 Webview 不在窗口中时限制处理,但不会完全挂起任务的策略。
后台节流策略。
以下任何一种:
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(开发 URL)
- features(功能特性)
- frontendDist(前端分发目录)
- removeUnusedCommands(移除未使用的命令)
- runner(运行器)
string[]
运行 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 命令的特性(features)。
FrontendDist | null
应用程序资产的路径(通常是你 JavaScript 打包器的 dist 文件夹),或一个 URL(可以是注册在 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-bundler 配置。
查看更多:<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 配置。
{ "autoIncrementVersionCode": false, "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。
支持的打包目标:deb、rpm、nsis 和 msi。
string[]
应用的图标
默认:[]
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 捆绑包的配置。
{ "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 模式。
包含文件列表
{ "bundle": { "resources": [ "./path/to/some-file.txt", "/absolute/path/to/textfile.txt", "../relative/path/to/jsonfile.json", "some-folder/", "resources/**/*.md" ] }}捆绑的文件将位于 $RESOURCES/ 中,并保留原始目录结构。例如:./path/to/some-file.txt -> $RESOURCE/path/to/some-file.txt
若要精细控制文件的复制目标位置,请改用映射
{ "bundle": { "resources": { "/absolute/path/to/textfile.txt": "resources/textfile.txt", "relative/path/to/jsonfile.json": "resources/jsonfile.json", "resources/": "", "docs/**/*md": "website-docs/" } }}请注意,在这种情况下使用 Glob 模式时,不会保留原始目录结构,所有内容都会直接复制到目标目录中
查看更多:<https://v2.tauri.org.cn/develop/resources/>
string | null
应用程序的简短描述。
捆绑目标,目前支持 [“deb”, “rpm”, “appimage”, “nsis”, “msi”, “app”, “dmg”] 或 “all”。
默认值:"all"
布尔值 (boolean)
是否在构建此应用程序时使用项目的 target 目录来缓存构建工具(例如 Wix 和 NSIS)。默认为 false。
如果为 true,工具将被缓存在 target/.tauri/ 中。如果为 false,工具将被缓存在当前用户特定平台的缓存目录中。
当以 Windows 系统用户身份(例如 AWS EC2 工作负载)构建此应用程序时,设置此项为 true 可能是合适的,因为 Windows 系统的应用数据目录受到限制。
Windows 捆绑包的配置。
{ "allowDowngrades": true, "certificateThumbprint": null, "digestAlgorithm": null, "minimumWebview2Version": 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 安装程序捆绑包 (.msi)。"nsis"NSIS 捆绑包 (.exe)。"app"macOS 应用程序捆绑包 (.app)。"dmg"Apple 磁盘映像捆绑包 (.dmg)。
由 tauri-bundler 引用的捆绑包。
以下其中之一:
"Editor"CFBundleTypeRole.Editor。文件可以被读取和编辑。"Viewer"CFBundleTypeRole.Viewer。文件可以被读取。"Shell"CFBundleTypeRole.Shell"QLGenerator"CFBundleTypeRole.QLGenerator"None"CFBundleTypeRole.None
仅适用于 macOS。对应 CFBundleTypeRole
开发人员可以用来隔离对 IPC 层访问权限的分组和边界机制。
它控制应用程序窗口和 webview 对 Tauri 核心、应用程序或插件命令的细粒度访问。如果 webview 或其窗口不匹配任何权限(Capability),则完全无法访问 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"]}对象属性:
- description
- 标识符 (必需)
- local
- permissions (必填)
- platforms
- remote
- webviews
- windows
string
描述该权限旨在允许关联窗口执行的操作。
它应该包含对分组权限所允许的操作的描述。
此权限允许 main 窗口访问与 filesystem 写入相关的命令以及 dialog 命令,从而能够以编程方式访问用户选择的文件。
string
权限的标识符。
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"]}string[]
受此权限影响的 webview 列表。可以是 Glob 模式。
此权限将在所有标签匹配此列表中任何模式的 webview 上启用,无论该 webview 的窗口标签是否匹配 [Self::windows] 中的模式。
["sub-webview-one", "sub-webview-two"]
string[]
受此权限影响的窗口列表。可以是 Glob 模式。
如果窗口标签匹配此列表中的任何模式,该权限将在该窗口的所有 webview 上启用,无论 [Self::webviews] 的值如何。
在多 webview 窗口上,为了进行细粒度的访问控制,建议优先指定 [Self::webviews] 并省略 [Self::windows]。
["main"]
以下任何一种:
Capability内联的权限。string对权限标识符的引用。
权限条目,可以是内联权限,也可以是对其自身文件中定义的权限的引用。
与该权限关联的远程 URL 的配置。
对象属性:
- urls (必填)
string[]
此权限引用的远程域,使用 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)[] RGB 颜色数组,最多 3 项,最少 3 项。每个值最小为 0,最大为 255。integer(格式为uint8) |integer(格式为uint8) |integer(格式为uint8) |integer(格式为uint8)[] RGBA 颜色数组,最多 4 项,最少 4 项。每个值最小为 0,最大为 255。- 红、绿、蓝、透明度颜色值的对象。每个值最小为 0,最大为 255。对象属性:- alpha - blue (必填) - green (必填) - red (必填) ##### alpha
integer(格式为uint8) 默认值:255##### blueinteger(格式为uint8) ##### greeninteger(格式为uint8) ##### redinteger(格式为uint8)
以下任何一种:
string整个 CSP 策略,以单个文本字符串表示。- 一个对象,将指令与其来源值(字符串列表)进行映射。允许其他属性:
CspDirectiveSources
内容安全策略 (Content-Security-Policy) 定义。查看 <https://mdn.org.cn/en-US/docs/Web/HTTP/CSP>。
以下任何一种:
stringCSP 源的内联列表。与 [Self::List] 相同,但用空格分隔符连接。string[] CSP 源列表。集合将使用空格分隔符连接以形成 CSP 字符串。
内容安全策略 (Content-Security-Policy) 指令源列表。查看 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources>。
以下任何一种:
string要执行的脚本的字符串表示形式。“%1”将被替换为要签名的二进制文件的路径。这是命令的一种更简单的表示法。Tauri 将使用' '分割字符串,并将第一个元素用作命令名称,其余部分用作参数。如果您需要在命令或参数中使用空格,请使用对象表示法 [Self::CommandWithOptions]。- 命令的对象表示法。这是命令的一种更复杂的表示法,但允许您在命令和参数中使用空格。对象属性:- args (必填) - cmd (必填) ##### args
string[] 要传递给命令的参数。“%1”将被替换为要签名的二进制文件的路径。 ##### cmdstring要运行以对二进制文件进行签名的命令。
自定义签名命令配置。
Debian (.deb) 捆绑包的配置。
查看更多:<https://v2.tauri.org.cn/reference/config/#debconfig>
对象属性:
- changelog
- conflicts
- depends
- desktopTemplate
- files(文件)
- postInstallScript
- postRemoveScript
- preInstallScript
- preRemoveScript
- priority
- provides
- recommends
- replaces
- section
string | null
未压缩的 Changelog 文件路径,将存储在 /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
您的应用程序所依赖的 Debian 依赖项列表。
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
您的应用程序推荐的 Debian 依赖项列表。
string[] | null
软件包替换列表。
string | null
定义 Debian Control 文件中的 section。查看: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>
对象属性:
- applicationFolderPosition
- appPosition
- background
- windowPosition
- windowSize
窗口中应用程序文件夹的位置。
{ "x": 480, "y": 170}窗口中应用程序文件的位置。
{ "x": 180, "y": 170}string | null
用作 dmg 文件背景的图像。接受的格式:png/jpg/gif。
Position | null
卷窗口在屏幕上的位置。
卷窗口的大小。
{ "height": 400, "width": 660}导出的类型定义。映射到 macOS 上的 UTExportedTypeDeclarations 条目。
对象属性:
- conformsTo
- 标识符 (必需)
string[] | null
此类型所符合的类型。映射到 UTTypeConformsTo。
例如 public.data, public.image, public.json 和 public.database。
string
导出类型的唯一标识符。映射到 UTTypeIdentifier。
文件关联
对象属性:
- androidIntentActionFilters
- contentTypes
- description
- exportedType
- ext (必填)
- mimeType
- 名称 (name)
- rank
- role
AndroidIntentAction[] | null
此文件关联的 Intent 操作过滤器。
默认情况下,使用所有过滤器。
string[] | null
声明对具有给定内容类型的文件支持。映射到 macOS 上的 LSItemContentTypes。
这允许支持任何由另一个符合此类型的应用程序声明的文件格式。新类型的声明可以使用 [Self::exported_type] 完成,而与特定内容类型的链接可以通过 [ExportedFileAssociation::conforms_to] 完成。
string | null
关联描述。仅限 Windows。它显示在 Windows 资源管理器的 Type 列中。
ExportedFileAssociation | null
导出的类型定义。映射到 macOS 上的 UTExportedTypeDeclarations 条目。
如果关联的文件是应用程序定义的自定义文件类型,则应定义此项。
要与此应用程序关联的文件扩展名,例如 ‘png’
string | null
关联的 mime 类型,例如 'image/png' 或 'text/plain'。
- Linux:在
.desktop文件中写为MimeType=。 - macOS / iOS:作为
public.mime-type添加到Info.plist中UTExportedTypeDeclarations条目的UTTypeTagSpecification字典中。 - Android:用作
AndroidManifest.xml中<intent-filter>的<data>元素中的android:mimeType。
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 访问的 Glob 模式列表。
每个模式都可以以解析为系统基目录的变量开头。这些变量包括:$AUDIO、$CACHE、$CONFIG、$DATA、$LOCALDATA、$DESKTOP、$DOCUMENT、$DOWNLOAD、$EXE、$FONT、$HOME、$PICTURE、$PUBLIC、$RUNTIME、$TEMPLATE、$VIDEO、$RESOURCE、$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 响应头部用于放宽 Service Worker 默认作用域的路径限制。
默认情况下,Service Worker 注册的作用域是 Service Worker 脚本所在的目录。例如,如果脚本 sw.js 位于 /js/sw.js,则默认情况下它只能控制 /js/ 下的 URL。服务器可以使用 Service-Worker-Allowed 头部允许 Service Worker 控制其目录之外的 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 响应头部指定了哪些来源被允许查看通过 Resource Timing 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 结构体 | JSON | JavaScript 对象) 等效的头部值。项由“键 + 空格 + 值”组成。然后项由“;”连接,作为实际的头部值 允许额外属性:
string
头部源的定义
头部名称对应的头部值
以下任何一种:
string:使用默认选项运行给定的脚本。- 使用自定义选项运行给定的脚本。对象属性: - cwd - script (必需) ##### cwd
string|null当前工作目录。 ##### scriptstring要执行的脚本。
描述触发 CLI 钩子时要执行的 shell 命令。
string
iOS 目标的通用配置。
对象属性:
- bundleVersion
- developmentTeam
- frameworks
- infoPlist
- minimumSystemVersion
- template
string | null
构建版本,用于标识包的迭代。
转换为包的 CFBundleVersion 属性。
string | null
开发团队。此值是 iOS 开发所必需的,因为强制执行代码签名。可以设置 APPLE_DEVELOPMENT_TEAM 环境变量来覆盖它。
string[] | null
一个字符串列表,指示需要与应用程序打包在一起的任何 iOS 框架。
请注意,您需要重新创建 iOS 项目才能使更改生效。
string | null
用于与默认 Info.plist 合并的 Info.plist 文件路径。
请注意,Tauri 也会在与 Tauri 配置文件相同的目录中查找 Info.plist 和 Info.ios.plist 文件。
string
一个版本字符串,表示捆绑的应用程序支持的最低 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 (必需)
格式化为 double 的 number
X 坐标。
格式化为 double 的 number
Y 坐标。
macOS 捆绑包的配置。
了解更多:<https://v2.tauri.org.cn/reference/config/#macconfig>
对象属性:
- bundleName
- bundleVersion
- dmg
- entitlements
- exceptionDomain
- files(文件)
- frameworks
- hardenedRuntime
- infoPlist
- 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)
codesign 是否应启用 强化运行时(针对可执行文件)。
默认值:true
string | null
用于与默认 Info.plist 合并的 Info.plist 文件路径。
请注意,Tauri 也会在与 Tauri 配置文件相同的目录中查找 Info.plist 文件。
string | null
一个版本字符串,表示捆绑的应用程序支持的最低 macOS X 版本。默认为 10.13。
将其设置为 null 将完全删除包的 Info.plist 上的 LSMinimumSystemVersion 字段以及 MACOSX_DEPLOYMENT_TARGET 环境变量。
在 tauri dev 中被忽略。
空字符串被认为是无效值,因此将使用默认值。
默认: "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
- uninstallerHeaderImage
- uninstallerIcon
设置用于压缩安装程序中文件的压缩算法。
参见 <https://nsis.sourceforge.io/Reference/SetCompressor>
默认: "lzma"
| null
键值对,其中键是语言,值是包含 Tauri 自定义消息翻译文本的自定义 .nsh 文件路径。
有关自定义 .nsh 文件的示例,请参见 <https://github.com/tauri-apps/tauri/blob/dev/crates/tauri-bundler/src/bundle/windows/nsis/languages/English.nsh>。
注意:键必须是有效的 NSIS 语言,并且必须添加到 [Self::languages] 数组中。
允许附加属性:string
布尔值 (boolean)
是否在呈现安装程序和卸载程序窗口之前显示语言选择器对话框。默认情况下,会选择操作系统语言,并回退到 languages 数组中的第一种语言。
string | null
显示在安装程序页面标题上的位图文件的路径。
建议尺寸为 150px x 57px。
string | null
指向包含特殊 NSIS 宏的 .nsh 文件的路径,这些宏将被钩入主 installer.nsi 脚本中。
支持的钩子有
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"!macroendstring | null
用作安装程序图标的图标文件的路径。
NSISInstallerMode(NSIS 安装程序模式)
安装是针对所有用户还是仅针对当前用户。
默认: "currentUser"
string[] | null
安装程序语言列表。如果未设置,默认为 ["English"]。
默认情况下使用操作系统语言。如果操作系统语言不在语言列表中,则将使用第一种语言。要允许用户选择语言,请将 display_language_selector 设置为 true。
参见 <https://github.com/kichik/nsis/tree/9465c08046f00ccb6eda985abbdbf52c275c6c4d/Contrib/Language%20files> 获取完整的语言列表。
string | null
已弃用:改用 [WindowsConfig::minimum_webview2_version] (bundle > windows > minimumWebview2Version)。
尝试确保 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 模板。
string | null
显示在卸载程序页面标题上的位图文件的路径。默认为 [Self::header_image]。如果设置了此项但没有设置 [Self::header_image],则会将 NSIS 的默认图像应用于 header_image
建议尺寸为 150px x 57px。
string | null
用作卸载程序图标的图标文件的路径。
以下其中之一:
"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格式为uint32Gzip 压缩级别 ##### type"gzip" - Zstd 压缩 对象属性:- level(必需)- type(必需)##### level
integer格式为int32Zstd 压缩级别 ##### type"zstd" - Xz 压缩 对象属性:- level(必需)- type(必需)##### level
integer格式为uint32Xz 压缩级别 ##### type"xz" - Bzip2 压缩 对象属性:- level(必需)- type(必需)##### level
integer格式为uint32Bzip2 压缩级别 ##### type"bzip2" - 禁用压缩 对象属性:- type(必需)##### type
"none"
打包 RPM 软件包时使用的压缩算法。
RPM 捆绑包配置。
对象属性:
- compression
- conflicts
- depends
- desktopTemplate
- epoch
- files(文件)
- obsoletes
- postInstallScript
- postRemoveScript
- preInstallScript
- preRemoveScript
- provides
- recommends
- release
RpmCompression | null
压缩算法和级别。默认为 Gzip 级别 6。
string[] | null
您的应用程序与之冲突的 RPM 依赖项列表。为了安装该软件包,必须确保这些依赖项不存在。
string[] | null
您的应用程序所依赖的 RPM 依赖项列表。
string | null
自定义桌面文件 Handlebars 模板的路径。
可用变量:categories, comment (可选), exec, icon 和 name。
integer,格式为 uint32
RPM epoch。
要包含在包中的文件。
允许附加属性: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 依赖项列表。
string
RPM release 标签。
默认值:"1"
以下任何一种:
string指定要运行的二进制文件的字符串。- 包含高级配置选项的对象。对象属性:- args - cmd(必需)- cwd ##### args
string[] |null传递给命令的参数。##### cmdstring要运行的二进制文件。##### cwdstring|null运行命令时所在的当前工作目录。
运行程序配置。
以下其中之一:
"default"在 webview 中使用的滚动条样式。"fluentOverlay"Fluent UI 风格的覆盖滚动条。仅限 Windows 需要 WebView2 Runtime 125.0.2535.41 或更高版本,在旧版本上无效,请参阅 <https://learn.microsoft.com/en-us/microsoft-edge/webview2/release-notes/?tabs=dotnetcsharp#10253541>
在 webview 中使用的滚动条样式。
- Windows:对于指向相同数据目录的所有 webview,此选项必须设置为相同的值。
安全配置。
更多信息:<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 文件中的内容安全策略 (Content Security Policy)。如果未指定 dev_csp,此值也会在开发环境中注入。
这是配置中非常重要的一部分,因为它有助于确保您的 WebView 是安全的。请参阅 <https://mdn.org.cn/en-US/docs/Web/HTTP/CSP>。
DisabledCspModificationKind(禁用的 CSP 修改类型)
禁用 Tauri 注入的 CSP 源。
在编译时,Tauri 会解析所有前端资产,并通过注入 nonce 和 hash 源来更改内容安全策略,从而仅允许加载您自己的脚本和样式。这会限制您的 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 view 的每个 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
托盘图标所使用的默认图标路径。
注意:这会将图像的原始像素存储到最终的二进制文件中,因此请保持图标尺寸(宽度和高度)较小,否则会增加最终可执行文件的大小。
string | null
为该托盘图标设置一个 id,以便稍后引用它,默认为 main。
布尔值 (boolean)
一个布尔值,确定当托盘图标收到左键单击时是否应显示菜单。
- Linux:不支持。
默认值:true
布尔值 (boolean)
一个布尔值,确定当托盘图标收到左键单击时是否应显示菜单。
- Linux:不支持。
默认值:true
string | null
MacOS 托盘的标题
string | null
Windows 和 macOS 上的托盘图标工具提示
以下任何一种:
V1Compatible生成旧版 v1 兼容的 zip 更新程序boolean是否生成更新程序及其签名
更新程序类型
"v1Compatible",生成旧版 v1 兼容的 zip 更新程序
生成旧版 v1 兼容的 zip 更新程序
以下任何一种:
null表示一个空 JSON 值。boolean表示一个 [bool] 值。Number表示一个有效的 ACL [Number] 值。string表示一个 [String] 值。Value[] 表示其他 [Value] 值的列表。- 表示从 [
String] 键到 [Value] 值的映射。允许附加属性:Value
所有支持的 ACL 值。
以下其中之一:
- 不将 Webview2 作为 Windows 安装程序的一部分进行安装。对象属性:- type(必需)##### type
"skip" - 下载引导程序并运行它。需要互联网连接。会导致安装程序体积更小,但不推荐在 Windows 7 上使用。对象属性:- silent - type(必需)##### silent
boolean指示安装程序以静默模式运行引导程序。默认为true。默认值:true##### type"downloadBootstrapper" - 嵌入引导程序并运行它。需要互联网连接。安装程序体积会增加约 1.8MB,但在 Windows 7 上提供更好的支持。对象属性:- silent - type(必需)##### silent
boolean指示安装程序以静默模式运行引导程序。默认为true。默认值:true##### type"embedBootstrapper" - 嵌入离线安装程序并运行它。不需要互联网连接。安装程序体积会增加约 127MB。对象属性:- silent - type(必需)##### silent
boolean指示安装程序以静默模式运行安装程序。默认为true。默认值:true##### type"offlineInstaller" - 嵌入固定的 webview2 版本并在运行时使用它。安装程序体积会增加约 180MB。对象属性:- path(必需)- type(必需)##### path
string固定的运行环境路径。可以从 官方网站 下载固定版本。.cab文件必须解压到一个文件夹中,并且必须在此字段中定义此文件夹路径。##### type"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
- activityName
- additionalBrowserArgs
- allowLinkPreview
- alwaysOnBottom
- alwaysOnTop
- backgroundColor
- backgroundThrottling
- browserExtensionsEnabled
- center
- 可关闭
- contentProtected
- create
- createdByActivityName
- dataDirectory
- dataStoreIdentifier
- 装饰
- devtools
- disableInputAccessoryView
- dragDropEnabled
- focus
- 可聚焦
- 全屏
- generalAutofillEnabled
- 高度
- hiddenTitle
- incognito
- javascriptDisabled
- 标签
- maxHeight
- 可最大化
- maximized
- maxWidth
- minHeight
- 可最小化
- minWidth
- parent
- preventOverflow
- proxyUrl
- requestedBySceneIdentifier
- 可调整大小
- scrollBarStyle
- shadow
- skipTaskbar
- tabbingIdentifier
- 主题
- 标题
- titleBarStyle
- trafficLightPosition
- transparent
- url
- useHttpsScheme
- userAgent
- visible
- visibleOnAllWorkspaces
- 宽度
- windowClassname
- windowEffects
- x
- y
- zoomHotkeysEnabled
布尔值 (boolean)
在 macOS 上,点击非活动窗口是否也会触发 webview 的点击。
string | null
为此窗口创建的 Android 活动名称。
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 进行创建。
tauri::Builder::default() .setup(|app| { tauri::WebviewWindowBuilder::from_config(app.handle(), &app.config().app.windows[0])?.build()?; Ok(()) });默认值:true
string | null
正在创建此 webview 窗口的 Android 活动名称。
这对于确定活动将属于哪个栈非常重要。
string | null
设置 webview 数据目录(localStorage、缓存等)的自定义路径,相对于 [appDataDir()]/${label}。
若要设置绝对路径,请使用 WebviewWindowBuilder::data_directory
- Windows:对于
additionalBrowserArgs、browserExtensionsEnabled或scrollBarStyle等设置具有不同值的 WebViews,必须使用不同的数据目录。 - macOS / iOS:不支持,请改为使用
dataStoreIdentifier。 - Android:不支持。
integer 格式为 uint8[] | null,最多 16 项,最少 16 项
使用自定义数据存储标识符初始化 WebView。这可以看作是 dataDirectory 的替代品,而在 WKWebView 中无法使用该功能。请参阅 https://developer.apple.com/documentation/webkit/wkwebsitedatastore/init(foridentifier:)?language=objc
数组必须包含 16 个 u8 数字。
- iOS:自 17.0+ 版本起支持。
- macOS:自 14.0+ 版本起支持。
- Windows / Linux / Android:不支持。
布尔值 (boolean)
窗口是否应该有边框和标题栏。
默认值:true
boolean | null
启用通常称为浏览器 devtools 的 web 检查器。默认启用。
此 API 适用于 调试 构建,但在 发布 构建中需要 devtools 功能标志才能启用它。
- macOS:这将在 macOS 上调用私有函数。
- Android:在 Chrome 中打开
chrome://inspect/#devices以获取 devtools 窗口。Wry 的WebViewdevtools API 不支持 Android。 - iOS:打开 Safari > 开发 > [您的设备名称] > [您的 WebView] 以获取 devtools 窗口。
布尔值 (boolean)
允许在 iOS 上禁用输入辅助视图。
辅助视图是当文本输入元素获得焦点时出现在键盘上方的视图。它通常显示一个带有“完成”、“下一个”按钮的视图。
布尔值 (boolean)
webview 上是否启用了拖放功能。默认情况下它是启用的。
在 Windows 上使用前端的 HTML5 拖放功能时,需要禁用它。
默认值:true
布尔值 (boolean)
窗口是否应初始获得焦点。
默认值:true
布尔值 (boolean)
窗口是否可获得焦点。
默认值:true
布尔值 (boolean)
窗口是否全屏启动。
布尔值 (boolean)
控制 WebView 的浏览器级通用自动填充行为。
此选项不会禁用密码或信用卡自动填充。
当设置为 false 时,WebView 将不会使用之前存储的数据(例如地址或联系信息)自动填充通用表单字段。
如果未指定,默认情况下为 true。
- Windows:支持。WebView2 的自动填充功能(称为“建议”)在某些情况下可能不遵守输入元素上的
autocomplete="off"。 - Linux / Android / iOS / macOS:不支持且不执行任何操作。
默认值:true
格式化为 double 的 number
逻辑像素中的窗口高度。
默认值:600
布尔值 (boolean)
如果为 true,则在 macOS 上隐藏窗口标题。
布尔值 (boolean)
webview 是否应以隐身模式启动。
- Android:不支持。
布尔值 (boolean)
我们是否应该禁用 webview 上的 JavaScript 代码执行。
string
窗口标识符。必须是字母数字。
默认值:"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:这会将传入的父窗口设置为待创建窗口的所有者窗口(Owner Window)。请参阅 MSDN 关于所有者窗口的文档。
- 所有者窗口始终位于其拥有者窗口的 Z 序上方。
- 当所有者窗口被销毁时,系统会自动销毁其拥有的窗口。
- 当所有者窗口最小化时,其拥有的窗口会被隐藏。
- Linux:这会使新窗口成为父窗口的瞬态窗口(transient for parent),请参阅 <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+。
string | null
设置请求新场景的场景标识符,从而在两个场景之间建立关系。
系统默认使用前台场景。
布尔值 (boolean)
窗口是否可调整大小。当 resizable 设置为 false 时,原生窗口的最大化按钮会自动禁用。
默认值:true
指定 WebView 使用的原生滚动条样式。修改滚动条的 CSS 样式将应用于此处配置的原生外观之上。
默认为 default,即浏览器默认样式。
- Windows:
fluentOverlay需要 WebView2 运行时版本 125.0.2535.41 或更高版本,在旧版本上无效。- 对于所有指向同一数据目录的 WebView,此选项必须设置为相同的值。
- Linux / Android / iOS / macOS:不支持。仅支持
Default且不执行任何操作。
默认值:"default"
布尔值 (boolean)
窗口是否有阴影。
- Windows
false对装饰窗口无效,阴影始终开启。true将使无装饰窗口有 1 像素的白色边框,在 Windows 11 上,它将有圆角。
- Linux: 不支持。
默认值:true
布尔值 (boolean)
如果设置为 true,则在 Windows 和 Linux 上从任务栏隐藏窗口图标。
string | null
定义 macOS 的窗口标签页标识符(tabbing identifier)。
具有相同标签页标识符的窗口将被分组在一起。如果未设置标签页标识符,将禁用自动标签页功能。
Theme | null
初始窗口主题。默认为系统主题。仅在 Windows 和 macOS 10.14+ 上实现。
string
窗口标题。
默认值:"Tauri App"
macOS 标题栏的样式。
默认值:"Visible"
LogicalPosition | null
macOS 上窗口控件的位置。
需要 titleBarStyle: Overlay 和 decorations: true。
布尔值 (boolean)
窗口是否透明。
注意:在 macOS 上,这需要启用 tauri > macOSPrivateApi 下的 macos-private-api 功能标志。警告:在 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 和 LocalStorage 的位置,导致您的应用程序无法访问旧数据。
string | null
WebView 的 User Agent。
布尔值 (boolean)
窗口是否可见。
默认值:true
布尔值 (boolean)
窗口是否应在所有工作区或虚拟桌面上可见。
- Windows / iOS / Android: 不支持。
格式化为 double 的 number
以逻辑像素为单位的窗口宽度。
默认值: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"适合视图 effectiveAppearance 的默认材质。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"macOS 10.14+"mica"匹配系统深色偏好的 Mica 效果 仅限 Windows 11"micaDark"深色模式下的 Mica 效果,仅在系统启用深色模式时有效 仅限 Windows 11"micaLight"浅色模式下的 Mica 效果 仅限 Windows 11"tabbed"匹配系统深色偏好的标签页效果 仅限 Windows 11"tabbedDark"深色模式下的标签页效果,仅在系统启用深色模式时有效 仅限 Windows 11"tabbedLight"浅色模式下的标签页效果 仅限 Windows 11"blur"仅限 Windows 7/10/11(22H1) ##### 注意:在 Windows 11 22621 版本上,该效果在调整窗口大小或拖动窗口时性能较差。"acrylic"仅限 Windows 10/11 ##### 注意:在 Windows 10 v1903+ 和 Windows 11 22000 版本上,该效果在调整窗口大小或拖动窗口时性能较差。
平台特定的窗口效果
窗口效果配置对象
对象属性:
- 颜色
- effects(必填)
- radius(圆角)
- state
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(摘要算法)
- minimumWebview2Version
- nsis
- signCommand(签名命令)
- timestampUrl(时间戳 URL)
- tsp
- webviewInstallMode(WebView 安装模式)
- wix
布尔值 (boolean)
验证第二次应用安装。如果设置为 false,则阻止用户安装旧版本。
例如,如果安装了 1.2.1,用户将无法安装应用程序版本 1.2.0 或 1.1.5。
此标志的默认值为 true。
默认值:true
string | null
指定签名证书的 SHA1 哈希值。
string | null
指定用于创建文件签名的文件摘要算法。代码签名必需。建议使用 SHA-256。
string | null
尝试确保 WebView2 版本等于或高于此版本,如果用户的 WebView2 早于此版本,安装程序将尝试触发 WebView2 更新。
NsisConfig | null
使用 NSIS 生成的安装程序配置。
CustomSignCommandConfig | null
指定自定义命令以对二进制文件进行签名。此命令的参数中需要包含一个 %1,作为二进制文件路径的占位符,我们将检测并在调用命令之前替换它。
默认情况下,我们使用仅可在 Windows 上找到的 signtool.exe。因此,如果您在其他平台上并希望进行交叉编译和签名,则需要使用其他工具,例如 osslsigncode。
string | null
用于时间戳服务器的 URL。
布尔值 (boolean)
是否为时间戳服务器使用时间戳协议(TSP,又称 RFC 3161)。您的代码签名提供商可能会使用 TSP 时间戳服务器(例如 SSL.com)。如果是这样,请将其设置为 true 以启用 TSP。
WebviewInstallMode(Webview 安装模式)
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(符合 FIPS 标准)
- fragmentPaths(片段路径)
- language(语言)
- mergeRefs
- template
- upgradeCode(升级代码)
- version
string | null
用作安装程序用户界面横幅的位图文件路径。此位图将显示在安装程序除第一页以外的所有页面顶部。
所需尺寸为 493px × 58px。
string[]
您希望从片段中引用的 ComponentGroup 元素 ID。
默认:[]
string[]
您希望从片段中引用的 Component 元素 ID。
默认:[]
string | null
用作安装程序用户界面对话框的位图文件路径。它用于欢迎和完成对话框。
所需尺寸为 493px × 312px。
布尔值 (boolean)
在 Windows 任务计划程序中创建提升权限的更新任务。
string[]
您希望从片段中引用的 FeatureGroup 元素 ID。
默认:[]
string[]
您希望从片段中引用的 Feature 元素 ID。
默认:[]
布尔值 (boolean)
启用符合 FIPS 标准的算法。也可以通过 TAURI_BUNDLER_WIX_FIPS_COMPLIANT 环境变量启用。
string[]
包含要使用的 WiX 片段的 .wxs 文件路径列表。
默认:[]
要构建的安装程序语言。请参阅 <https://docs.microsoft.com/en-us/windows/win32/msi/localizing-the-error-and-actiontext-tables>。
默认值:"en-US"
string[]
您希望从片段中引用的 Merge 元素 ID。
默认:[]
string | null
要使用的自定义 .wxs 模板。
string | null,格式为 uuid
MSI 安装程序的 GUID 升级代码。此代码在所有更新中必须保持不变,否则 Windows 会将您的更新视为不同的应用程序,用户将拥有应用程序的重复版本。
默认情况下,Tauri 通过在 DNS 命名空间中使用字符串 <productName>.exe.app.x64 生成 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>。
© 2026 Tauri 贡献者。CC-BY / MIT