配置
这里是 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": "../dist", "frontendDist": "../dist" }, "app": { "security": { "csp": null }, "windows": [ { "fullscreen": false, "height": 600, "resizable": true, "title": "Tauri App", "width": 800 } ] }, "bundle": {}, "plugins": {}}
对象属性:
- 应用
- build
- bundle
- identifier(必需)
- mainBinaryName
- plugins
- productName
- version
应用
应用配置
{ "enableGTKAppId": false, "macOSPrivateApi": false, "security": { "assetProtocol": { "enable": false, "scope": [] }, "capabilities": [], "dangerousDisableAssetCspModification": false, "freezePrototype": false, "pattern": { "use": "brownfield" } }, "windows": [], "withGlobalTauri": false}
build
构建配置
默认值: {}
bundle
打包配置
{ "active": false, "android": { "minSdkVersion": 24 }, "createUpdaterArtifacts": false, "iOS": { "minimumSystemVersion": "13.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 }}
identifier
字符串
应用程序标识符(按逆向域名表示法,例如 com.tauri.example
)。由于它在系统配置中(如打包 ID 和 webview 数据目录路径)使用,因此该字符串必须跨应用程序唯一。该字符串必须只包含字母数字字符(A-Z、a-z、0-9)、连字符(-)和点(.)。
mainBinaryName
string
或 null
应用主要二进制文件名。默认为你的 cargo crate 名称。
plugins
插件配置。
默认值: {}
productName
string
| null
构型为 ^[^/\:*?"<>|]+$
应用名称。
version
string
或 null
应用版本。它是一个 semver 版本号或指向包含 version
字段的 package.json
文件的路径。如果没有移除 Cargo.toml
中的版本号,则使用其版本号。
默认情况下,在 Android 上使用版本 1.0。
定义
AndroidConfig
针对 iOS 目标的通用配置。
对象属性:
- minSdkVersion
- versionCode
minSdkVersion
integer
按照 uint32
格式化
应用程序运行所需的最小 API 级别。如果系统的 API 级别低于指定值,则 Android 系统将阻止用户安装应用程序。
默认: 24
versionCode
integer
| null
最大值为 2100000000
,最小值为 1
,按照 uint32
格式化
应用程序的版本代码。根据 Google Play 商店的要求,它被限制为 2,100,000,000。
默认情况下,我们使用您配置的版本,并执行以下数学运算:versionCode = version.major * 1000000 + version.minor * 1000 + version.patch
AppConfig
应用程序配置对象。
更多信息:<https://v2.tauri.org.cn/reference/config/#appconfig>
对象属性:
- enableGTKAppId
- macOSPrivateApi
- security
- trayIcon
- windows
- withGlobalTauri
enableGTKAppId
boolean
如果设置为 true,“identifier” 将被设置为 GTK 应用程序 ID(在使用 GTK 的系统上)。
macOSPrivateApi
boolean
MacOS 私有 API 配置。启用透明背景 API 并将 fullScreenEnabled
预设设置为 true
。
security
安全配置。
{ "assetProtocol": { "enable": false, "scope": [] }, "capabilities": [], "dangerousDisableAssetCspModification": false, "freezePrototype": false, "pattern": { "use": "brownfield" }}
trayIcon
TrayIconConfig
| null
应用程序托盘图标的配置。
windows
应用程序窗口配置。
默认: []
withGlobalTauri
boolean
是否在 window.__TAURI__
上注入 Tauri API。
AppImageConfig
应用程序镜像包配置。
更多信息:<https://v2.tauri.org.cn/reference/config/#appimageconfig>
对象属性:
- bundleMediaFramework
- files
bundleMediaFramework
boolean
包含音频和视频回放所需的附加 gstreamer 依赖项。这会根据构建系统增加 ~15-35MB 的包大小。
files
要包含在应用程序镜像二进制文件中的文件。
允许额外的属性:string
默认值: {}
AssetProtocolConfig
资产自定义协议配置。
更多信息:<https://v2.tauri.org.cn/reference/config/#assetprotocolconfig>
对象属性:
- enable
- scope
enable
boolean
启用资产协议。
scope
资产协议的访问范围。
默认: []
AssociationExt
字符串
一个 [FileAssociation
] 的扩展。
自动删除开头的 .
。
BeforeDevCommand
以下任意一项:
string
使用默认选项运行给定的脚本。- 使用自定义选项运行给定的脚本。 对象属性:- cwd - script (required) - wait ##### cwd
string
|null
当前工作目录。##### scriptstring
要执行的脚本。##### waitboolean
tauri dev 是否应该等待命令完成。默认为false
。
tauri dev
运行之前描述的 shell 命令。
BuildConfig
构建配置对象。
更多信息:<https://v2.tauri.org.cn/reference/config/#buildconfig>
对象属性:
- beforeBuildCommand
- beforeBundleCommand
- beforeDevCommand
- devUrl
- features
- frontendDist
- runner
beforeBuildCommand
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。
beforeBundleCommand
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
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。
devUrl
string
| null
格式化为 uri
用于开发中加载的 URL。
这通常是一个指向提供应用程序资源的 dev 服务器 URL,该服务器具有热重载和模块热替换(HMR)功能。大多数现代 JavaScript 打包器(如 vite)默认提供启动 dev 服务器的功能。
如果您没有 dev 服务器或不想使用 dev 服务器,忽略此选项,并使用 frontendDist
并指向一个 web 资源目录,Tauri CLI 将运行其内置的 dev 服务器并提供简单的热重载体验。
features
string
[] | null
传递给 cargo
命令的特性。
frontendDist
FrontendDist
| null
应用程序资源路径(通常是 JavaScript 打包器的 dist
文件夹)或 URL,可以是注册在 tauri 应用程序中的自定义协议(例如:myprotocol://
)或远程 URL(例如:https://site.com/app
)。
当提供相对配置文件的路径时,将递归读取并嵌入所有文件到应用程序的二进制文件中。Tauri 然后查找 index.html
并将其作为应用程序的默认入口点。
您也可以提供要嵌入的路径列表,这允许对添加到二进制文件中的文件进行细粒度控制。在这种情况下,所有文件都添加到根目录,并且您必须在 HTML 文件中这样引用它。
当提供了一个 URL 时,应用程序将不会包含打包的资源,并将默认加载该 URL。
runner
string
或 null
用于构建和运行应用程序的二进制文件。
BundleConfig
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
active
boolean
是否 Tauri 应打包您的应用程序或仅输出可执行文件。
android
Android 配置。
{ "minSdkVersion": 24}
category
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。
copyright
string
或 null
与您的应用程序相关联的版权字符串。
createUpdaterArtifacts
是否生产更新器和它们的签名
externalBin
string
[] | null
与应用程序一起嵌入的二元文件的绝对或相对路径列表。
请注意,Tauri将按照“binary-name{-target-triple}{.system-extension}”的模式查找系统特定的二进制文件。
例如,对于外部二进制文件“my-binary”,Tauri会查找
- “my-binary-x86_64-pc-windows-msvc.exe”用于Windows
- “my-binary-x86_64-apple-darwin”用于macOS
- “my-binary-x86_64-unknown-linux-gnu”用于Linux
因此,请确保为所有目标平台提供二进制文件。
fileAssociations
FileAssociation
[] | null
应用程序的文件关联。
homepage
string
或 null
应用程序主页的URL。如果未设置,将回退到在Cargo.toml
中定义的homepage
。
支持的捆绑包目标:deb
、rpm
、nsis
和msi
。
icon
字符串
[]
应用程序的图标
默认: []
iOS
iOS配置。
{ "minimumSystemVersion": "13.0"}
license
string
或 null
要包含在适当的捆绑包中的软件包许可标识符。如果未设置,默认为Cargo.toml文件中的许可。
licenseFile
string
或 null
要在适当的捆绑包中包含的许可文件路径。
linux
Linux捆绑包的配置。
{ "appimage": { "bundleMediaFramework": false, "files": {} }, "deb": { "files": {} }, "rpm": { "epoch": 0, "files": {}, "release": "1" }}
longDescription
string
或 null
应用程序的较长、多行描述。
macOS
macOS捆绑包的配置。
{ "dmg": { "appPosition": { "x": 180, "y": 170 }, "applicationFolderPosition": { "x": 480, "y": 170 }, "windowSize": { "height": 400, "width": 660 } }, "files": {}, "hardenedRuntime": true, "minimumSystemVersion": "10.13"}
publisher
string
或 null
应用程序的发布者。默认为标识符字符串的第二部分。
在没有在Cargo.toml中设置作者字段的情况下,当前映射到Windows安装程序的Manufacturer属性和Debian包的Maintainer字段。
resources
BundleResources
| null
要捆绑的应用程序资源。每个资源都是一个文件或目录的路径。支持glob模式。
shortDescription
string
或 null
您应用程序的简短描述。
targets
捆绑包目标,目前支持[“deb”,“rpm”,“appimage”,“nsis”,“msi”,“app”,“dmg”]或“all”。
默认值:"all"
useLocalToolsDir
boolean
是否使用项目的target
目录,在构建此应用程序时缓存构建工具(例如,Wix和NSIS),默认为false
。
如果为true,则工具将缓存到target\.tauri-tools
。如果为false,则工具将缓存到当前用户平台特定的缓存目录中。
可以将此设置为true的示例是,在Windows系统用户(例如,AWS EC2工作负载)构建此应用程序时,因为Windows系统应用程序数据目录是受限的。
windows
Windows捆绑包的配置。
{ "allowDowngrades": true, "certificateThumbprint": null, "digestAlgorithm": null, "nsis": null, "signCommand": null, "timestampUrl": null, "tsp": false, "webviewInstallMode": { "silent": true, "type": "downloadBootstrapper" }, "wix": null}
BundleResources
以下任意一项:
string
[] 要包含的路径列表。- 源到目标路径的映射。 允许额外属性:
string
捆绑包资源的定义。可以是包含路径的列表或源到目标路径的映射。
BundleTarget
以下任意一项:
"all"
捆绑所有目标。BundleType
[] 捆绑目标列表。BundleType
单个捆绑目标。
要捆绑的目标。每个值不区分大小写。
BundleType
以下之一:
"deb"
Debian捆绑包 (.deb)。"rpm"
RPM捆绑包 (.rpm)。"appimage"
AppImage捆绑包 (.appimage)。"msi"
MicrosoftInstaller捆绑包 (.msi)。"nsis"
NSIS捆绑包 (.exe)。"app"
macOS应用程序捆绑包 (.app)。"dmg"
Apple磁盘映像捆绑包 (.dmg)。
被tauri-bundler引用的捆绑包。
BundleTypeRole
以下之一:
"Editor"
CFBundleTypeRole.Editor。文件可以读取和编辑。"Viewer"
CFBundleTypeRole.Viewer。文件可以读取。"Shell"
CFBundleTypeRole.Shell"QLGenerator"
CFBundleTypeRole.QLGenerator"None"
CFBundleTypeRole.None
仅适用于macOS。对应于CFBundleTypeRole
能力
开发者可以用来隔离对IPC层访问的分组和边界机制。
它控制应用程序窗口对Tauri核心、应用程序或插件命令的精细权限访问。如果一个窗口不匹配任何能力,那么它将完全没有访问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 programatic 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"]}
对象属性:
- 描述
- identifier(必需)
- 本地
- 权限(必需)
- 平台
- 远程
- webviews
- windows
描述
字符串
对关联窗口上该能力旨在允许的描述。
它应包含对分组权限应允许内容的描述。
示例
此能力允许主窗口访问与文件系统相关的写命令和对话框命令,以启用对用户选择的文件的程序性访问。
identifier
字符串
能力的标识符。
示例
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"]}
webviews
字符串
[]
受此能力影响的webview列表。可以是glob模式。
仅在多webview上下文中使用时才需要,默认情况下,所有匹配 [Self::windows
] 的窗口的子webview都相关联。
示例
["sub-webview-one", "sub-webview-two"]
windows
字符串
[]
受此能力影响的窗口列表。可以是glob模式。
在多webview窗口上,首选 [Self::webviews
] 进行精细的访问控制。
示例
["main"]
CapabilityEntry
以下任意一项:
Capability
内联能力。string
对能力标识符的引用。
a能力条目可以是内联能力或对其自己文件上定义的能力的引用。
CapabilityRemote
与能力相关的远程URL的配置。
对象属性:
- urls (必需)
urls
字符串
[]
此能力引用的远程域,使用URLPattern标准。
示例
- “https://*.mydomain.dev”:允许mydomain.dev的子域
- “https://mydomain.dev/api/*”:允许mydomain.dev/api的任何子路径
Color
以下任意一项:
string
颜色十六进制字符串的模式,例如:#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。- 包含红色、绿色、蓝色、透明度颜色值的对象。每个值的最小值为 0,最大值为 255。 对象属性:- 透明度 (required) - 蓝色 (required) - 绿色 (required) - 红色 (required) ##### 透明度
integer
格式化为uint8
默认值:255
##### 蓝色integer
格式化为uint8
##### 绿色integer
格式化为uint8
##### 红色integer
格式化为uint8
Csp
以下任意一项:
string
仅包含单个文本字符串的整个内容安全策略 (CSP) 策略。- 一个对象,将指令与其作为字符串列表的来源值相映射。 允许额外的属性:
CspDirectiveSources
内容安全策略 (CSP) 定义。参见 <https://mdn.org.cn/en-US/docs/Web/HTTP/CSP>。
CspDirectiveSources
以下任意一项:
string
用于单个工作表的 CSP 源的内置列表。与 [Self::List
] 相同,但使用空格分隔符连接。string
[] 由 CSP 源构成的列表。该集合将使用空格分隔符连接形成 CSP 字符串。
CSP 指令源列表。参见 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources>。
CustomSignCommandConfig
以下任意一项:
string
执行脚本的字符串表示。将 “%1” 替换为目标二进制文件的路径。这是一种更简单的命令表示法。Tauri 将使用' '
将字符串分割,并使用第一个元素作为命令名称,其余作为参数。如果需要在命令或参数中使用空格,请使用对象表示法 [Self::ScriptWithOptions
]。- 命令的对象表示。这是一种更复杂的命令表示法,但允许在命令和参数中使用空格。 对象属性:- args (required) - cmd (required) ##### args
string
[] 要传递给命令的参数。在 “%1” 位置替换为目标二进制文件的路径。##### cmdstring
运行以对二进制文件进行签名的命令。
自定义签名命令的配置。
DebConfig
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
。
files
包中包含的文件列表。
允许额外的属性: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 控制文件中定义部分。详情请参考:https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections
DisabledCspModificationKind
以下任意一项:
boolean
如果设置为true
,则禁用所有 CSP 修改。默认值为false
,配置 Tauri 控制CSP。string
[] 禁用指定的 CSP 指令修改列表。
配置选项 dangerous_disable_asset_csp_modification
可能的值。
DmgConfig
Apple 磁盘镜像 (.dmg) 打包的配置。
更多信息:<https://v2.tauri.org.cn/reference/config/#dmgconfig>
对象属性:
- applicationFolderPosition
- appPosition
- background
- windowPosition
- windowSize
applicationFolderPosition
应用文件夹在窗口中的位置。
{ "x": 480, "y": 170}
appPosition
应用文件在窗口中的位置。
{ "x": 180, "y": 170}
background
string
或 null
在 dmg 文件中用作背景的图片。支持的格式: png
/ jpg
/ gif
。
windowPosition
Position
或 null
体积窗口在屏幕上的位置。
windowSize
体积窗口的大小。
{ "height": 400, "width": 660}
FileAssociation
文件关联
对象属性:
- 描述
- ext(必需)
- mimeType
- name
- role
描述
string
或 null
关联描述。只在 Windows 上显示。显示在 Windows 资源管理器的 Type
列中。
ext
与该应用关联的文件扩展名。例如,'png'。
mimeType
string
或 null
类型,例如 'image/png' 或 'text/plain'。Linux 仅支持。
name
string
或 null
名称。映射到 macOS 上的 CFBundleTypeName
。默认值为 ext[0]
。
role
与应用程序相对于类型的角色。映射到 macOS 上的 CFBundleTypeRole
。
默认值: "Editor"
FrontendDist
以下任意一项:
string
以uri
格式化。用作默认应用程序 URL 的外部 URL。string
包含前端 dist 资产目录的路径。string
[] 要嵌入应用的文件数组。
定义要嵌入应用中的 URL 或资产。
FsScope
以下任意一项:
string
[] 该范围允许的路径列表。- 完整的范围配置。对象属性:- 允许 - 拒绝 - requireLiteralLeadingDot ##### 允许
string
[] 该范围允许的路径列表。 默认:[]
##### 拒绝string
[] 该范围不允许的路径列表。此列表优先于 [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
、$APP
、$LOG
、$TEMP
、$APPCONFIG
、$APPDATA
、$APPLOCALDATA
、$APPCACHE
、$APPLOG
。
HeaderConfig
一个结构,其键是某些特定的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
函数发送的每个响应上设置。内容安全策略头定义了单独的,因为它也单独处理。
对于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
- Tauri-Custom-Header
- Timing-Allow-Origin
- X-Content-Type-Options
Access-Control-Allow-Credentials
HeaderSource
| null
Access-Control-Allow-Credentials响应头告诉浏览器服务器是否允许跨源HTTP请求包含凭据。
请参阅:https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials
Access-Control-Allow-Headers
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
Access-Control-Allow-Methods
HeaderSource
| null
Access-Control-Allow-Methods响应头指定了在响应预检请求访问资源时允许使用的方法。
请参阅:https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods
Access-Control-Expose-Headers
HeaderSource
| null
Access-Control-Expose-Headers响应头允许服务器指示应该在响应中向在浏览器中运行的脚本提供哪些响应头。
请参阅:https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers
Access-Control-Max-Age
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
Cross-Origin-Embedder-Policy
HeaderSource
| null
HTTP Cross-Origin-Embedder-Policy (COEP)响应头配置将跨源资源嵌入到文档中。
请参阅:https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy
Cross-Origin-Opener-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
Cross-Origin-Resource-Policy
HeaderSource
| null
HTTP Cross-Origin-Resource-Policy响应头传达了一个希望浏览器阻止对给定资源的no-cors跨源/跨站请求的愿望。
请参阅:https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Cross-Origin-Resource-Policy
Permissions-Policy
HeaderSource
| null
HTTP Permissions-Policy头提供了一种机制来允许或拒绝文档或文档中任何<iframe>元素中使用浏览器功能。
请参阅:https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Permissions-Policy
Tauri-Custom-Header
HeaderSource
| null
自定义头字段Tauri-Custom-Header,请勿使用它。记得相应地设置Access-Control-Expose-Headers
非生产用途
Timing-Allow-Origin
HeaderSource
| null
Timing-Allow-Origin响应头指定了允许查看通过Resource Timing API获取的属性值的源,否则由于跨源限制而报告为零。
请参阅:https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Timing-Allow-Origin
X-Content-Type-Options
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
HeaderSource
以下任意一项:
- 井号编码字母《code dir="auto">string》的头部值字符串版本
- 头部值列表版本《code dir="auto">string[]。项通过","连接生成实际头部值
- 头部值等价于Rust结构体 | Json | JavaScript对象的实体。项由key + 空格 + value组成。然后通过";"连接项以生成实际头部值 允许额外属性: 《code dir="auto">string
头部源的定义
头部值对应的头部名称
HookCommand
以下任意一项:
string
使用默认选项运行给定的脚本。- 使用自定义选项运行指定的脚本。 对象属性: - cwd - script(必需) ##### cwd 《code dir="auto">string | 《code dir="auto">null 当前工作目录。 ##### script 《code dir="auto">string 要执行的脚本。
描述当CLI钩子被触发时执行的shell命令。
Identifier
字符串
IosConfig
针对 iOS 目标的通用配置。
对象属性:
- 开发团队
- 框架
- 最低系统版本
- 模板
开发团队
string
或 null
开发团队。这个值对于iOS开发是必需的,因为代码签名是强制性的。《APPLE_DEVELOPMENT_TEAM》环境变量可以设置以覆盖它。
框架
string
[] | null
指示需要与应用程序一起打包的任何iOS框架的字符串列表。
注意,您需要重创建iOS项目才能应用更改。
最低系统版本
字符串
指示捆绑应用程序支持的最低iOS版本的版本字符串。默认为《code dir="auto">13.0.
对应于IPHONEOS_DEPLOYMENT_TARGET值。
默认:《code dir="auto">"13.0"
模板
string
或 null
用于的自定义《a href="%3Chttps://github.com/yonaskolb/XcodeGen%3E">XcodeGen project.yml模板。
LinuxConfig
Linux捆绑的配置。
更多信息: 《<https://v2.tauri.org.cn/reference/config/#linuxconfig>
对象属性:
- appimage
- deb
- rpm
appimage
AppImage捆绑的配置。
{ "bundleMediaFramework": false, "files": {}}
deb
Debian捆绑的配置。
{ "files": {}}
rpm
RPM捆绑的配置。
{ "epoch": 0, "files": {}, "release": "1"}
MacConfig
macOS捆绑包的配置。
更多信息: 《<https://v2.tauri.org.cn/reference/config/#macconfig>
对象属性:
- dmg
- entitlements
- exceptionDomain
- files
- 框架
- hardenedRuntime
- 最低系统版本
- providerShortName
- signingIdentity
dmg
DMG特定的设置。
{ "appPosition": { "x": 180, "y": 170 }, "applicationFolderPosition": { "x": 480, "y": 170 }, "windowSize": { "height": 400, "width": 660 }}
entitlements
string
或 null
权限文件的路径。
exceptionDomain
string
或 null
允许您的应用程序与外部世界通信。它应该是一个小写字符串,不包含端口号和协议域名。
files
相对于Contents目录包含在应用程序中的文件。
允许额外的属性:string
默认值: {}
框架
string
[] | null
指示需要与应用程序一起捆绑的任何macOS X框架的字符串列表。
如果使用名称,则必须省略".framework",它将查找标准安装位置。您也可以使用特定框架的路径。
hardenedRuntime
boolean
是否使codesign启用强化运行时(对于可执行文件)或不禁用。
默认值: true
最低系统版本
string
或 null
指示捆绑应用程序支持的最低macOS X版本的版本字符串。默认为《code dir="auto">10.13.
将其设置为《code dir="auto">null将完全删除捆绑的《code dir="auto">Info.plist上的《code dir="auto">LSMinimumSystemVersion字段以及《code dir="auto">MACOSX_DEPLOYMENT_TARGET环境变量。
空字符串被视为无效值,因此使用默认值。
默认:《code dir="auto">"10.13"
providerShortName
string
或 null
用于认证的提供者短名。
signingIdentity
string
或 null
用于代码签名的标识符。
NsisCompression
以下之一:
- 《code dir="auto">"zlib" ZLIB使用deflate算法,这是一种快捷简单的方法。默认压缩级别大约使用300 KB的内存。
- 《code dir="auto">"bzip2" BZIP2通常比ZLIB提供更好的压缩率,但速度稍慢,使用更多内存。默认压缩级别大约使用4 MB的内存。
- 《code dir="auto">"lzma" LZMA(默认)是一种新的压缩方法,提供了非常好的压缩率。解压缩速度很高(2 GHz CPU上为10-20 MB/s),压缩速度较低。用于解压缩的内存大小是字典大小加上几个KB,默认为8 MB。
- 《code dir="auto">"none" 禁用压缩
NSIS安装程序中使用的压缩算法。
有关更多信息,请参阅《<https://nsis.sourceforge.io/Reference/SetCompressor>
NsisConfig
使用NSIS为安装包配置。
对象属性:
- 压缩
- 自定义语言文件
- 显示语言选择器
- 标题图像
- 安装钩子
- 安装器图标
- 安装模式
- 语言
- minimumWebview2Version
- 侧边栏图像
- 开始菜单文件夹
- 模板
压缩
设置用于压缩安装包中文件的压缩算法。
有关更多信息,请参阅《<https://nsis.sourceforge.io/Reference/SetCompressor>
默认: "lzma"
自定义语言文件
| null
一个键值对,其中键是语言,值是保存tauri自定义消息翻译的Custom .nsh
文件的路径。
查阅 <https://github.com/tauri-apps/tauri/blob/dev/crates/tauri-bundler/src/bundle/windows/nsis/languages/English.nsh> 以获取.nsh
文件的示例。
注意:键必须是有效的NSIS语言,并且必须添加到[${code dir="auto">NsisConfig
允许额外的属性:string
显示语言选择器
boolean
在渲染安装包和卸载程序窗口之前是否显示语言选择器对话框。默认情况下,选择OS语言,如果列表中没有OS语言,则使用第一个语言。
标题图像
string
或 null
显示在安装程序页面标题位置的位图文件路径。
推荐尺寸是150像素 x 57像素。
安装钩子
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"!macroend
安装器图标
string
或 null
作为安装器图标的图标文件路径。
安装模式
安装将针对所有用户还是仅针对当前用户。
默认: "currentUser"
语言
string
[] | null
安装器语言列表。默认使用OS语言。如果列表中没有OS语言,则使用第一个语言。要允许用户选择语言,将display_language_selector
设置为true
。
查阅 <https://github.com/kichik/nsis/tree/9465c08046f00ccb6eda985abbdbf52c275c6c4d/Contrib/Language%20files> 获取完整的语言列表。
minimumWebview2Version
string
或 null
确保WebView2版本与此版本相等或更新,如果用户的WebView2版本低于此版本,安装程序将尝试触发WebView2更新。
侧边栏图像
string
或 null
欢迎页面和完成页的位图文件路径。
推荐尺寸是164像素 x 314像素。
开始菜单文件夹
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模板。
NSISInstallerMode
以下之一:
"currentUser"
:安装程序的默认模式。将应用程序默认安装在不需要管理员权限的目录中。安装程序元数据将保存在HKCU
注册表路径下。"perMachine"
:将应用程序默认安装在需要管理员权限的Program Files
文件夹目录。安装程序元数据将保存在HKLM
注册表路径下。"both"
合并两种模式,并允许用户在安装时选择是为当前用户安装还是为每个机器安装。注意,即使用户只想为当前用户安装,此模式也将需要管理员访问权限。根据用户的选择,安装程序元数据将被保存在HKLM
或HKCU
注册表路径下。
NSIS 安装程序的安装模式。
Number
以下任意一项:
integer
格式化为int64
代表一个 [i64
].number
格式化为double
代表一个 [f64
].
一个有效的 ACL(访问控制列表)数字。
PatternKind
以下之一:
- Brownfield 模式。 对象属性: - 使用(必需)##### use
"brownfield"
- 隔离模式。出于安全目的推荐使用。 对象属性: - 选项(必需) - 使用(必需)##### options 对象属性: - dir(必需)###### dir
string
包含包含 secure isolation 应用程序的 index.html 文件的目录##### use"isolation"
应用程序模式。
PermissionEntry
以下任意一项:
标识符
通过标识符引用权限或权限集。- 通过标识符引用权限或权限集并扩展其范围。 对象属性: - 允许 - 拒绝 - identifier(必需)##### allow
值
[] |null
定义作用域内允许的数据。##### deny值
[] |null
定义作用域内拒绝的数据。这应该通过验证逻辑进行优先级排序。##### identifier标识符
权限或权限集的标识符。
一个 Capability
中的权限值条目可以是原始权限 Identifier
或引用权限并扩展其范围的对象。
PluginConfig
plugin configs 持有一个将插件名称映射到其配置对象的 HashMap。
查看更多: <https://v2.tauri.org.cn/reference/config/#pluginconfig>
允许额外的属性:true
Position
位置坐标结构。
对象属性:
- x(必需)
- y(必需)
x
integer
按照 uint32
格式化
X 坐标。
y
integer
按照 uint32
格式化
Y 坐标。
RpmCompression
以下之一:
- 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 软件包时使用的压缩算法。
RpmConfig
RPM 打包的配置。
对象属性:
- 压缩
- 冲突
- 依赖
- 桌面模板
- epoch
- files
- obsoletes
- 安装后脚本
- 卸载后脚本
- 预安装脚本
- 预卸载脚本
- 提供
- 推荐
- release
压缩
RpmCompression
| null
压缩算法和级别。默认为使用级别 6 的 Gzip。
冲突
string
[] | null
与您的应用程序冲突的 RPM 依赖项列表。它们必须不存在才能安装软件包。
依赖
string
[] | null
您的应用程序所依赖的 RPM 依赖项列表。
桌面模板
string
或 null
自定义桌面文件 Handlebars 模板的路径。
可用变量: categories
、comment
(可选)、exec
、icon
和 name
。
epoch
integer
按照 uint32
格式化
RPM 的 epoch。
files
包中包含的文件列表。
允许额外的属性:string
默认值: {}
obsoletes
string
[] | null
您应用程序覆盖的 RPM 依赖列表 - 如果此包已安装,被列为“弃用”的包将自动移除(如果存在)。
安装后脚本
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 依赖列表。
release
字符串
RPM 版本标签。
默认值: "1"
SecurityConfig
安全配置。
查看更多: <https://v2.tauri.org.cn/reference/config/#securityconfig>
对象属性:
- assetProtocol
- capabilities
- csp
- dangerousDisableAssetCspModification
- devCsp
- freezePrototype
- headers
- pattern
assetProtocol
自定义协议配置。
{ "enable": false, "scope": []}
capabilities
在应用程序上启用的功能列表。
如果列表为空,则包括所有功能。
默认: []
csp
Csp
| null
所有生成应用程序中的 HTML 文件将注入的内容安全策略。如果没有指定 dev_csp
,此值也将注入到开发中。
这是配置中非常重要的一部分,因为它有助于确保您的 WebView 是安全的。请参阅 <https://mdn.org.cn/en-US/docs/Web/HTTP/CSP>。
dangerousDisableAssetCspModification
禁用 Tauri 注入的资源安全策略来源。
在编译时,Tauri 解析所有前端资源,并更改内容安全策略,只允许通过注入 nonce 和 hash 源加载您的脚本和样式。这严格了您的 CSP,可能会在使用其他灵活源时引入问题。
此配置选项允许将布尔值和字符串列表作为值。布尔值指示 Tauri 禁用所有 CSP 注入的注入,而字符串列表指示 Tauri 不能注入的 CSP 指令。
警告:仅在您了解自己在做什么并且已正确配置 CSP 的情况下禁用此功能。没有这个 Tauri 保护,您的应用程序可能会受到 XSS 攻击。
devCsp
Csp
| null
所有开发中的 HTML 文件将注入的内容安全策略。
这是配置中非常重要的一部分,因为它有助于确保您的 WebView 是安全的。请参阅 <https://mdn.org.cn/en-US/docs/Web/HTTP/CSP>。
freezePrototype
boolean
在使用自定义协议时冻结 Object.prototype
。
headers
HeaderConfig
| null
Tauri 发送到 webview 的每个 HTTP 响应中添加的头部。这不包括 IPC 消息和错误响应。
pattern
要使用的模式。
{ "use": "brownfield"}
Size
窗口大小。
对象属性:
- height (required)
- width (required)
height
integer
按照 uint32
格式化
窗口的高度。
width
integer
按照 uint32
格式化
窗口的宽度。
Target
以下之一:
"macOS"
MacOS。"windows"
Windows。"linux"
Linux。"android"
Android。"iOS"
iOS。
目标平台。
Theme
以下之一:
"Light"
亮色主题。"Dark"
暗色主题。
系统主题。
TitleBarStyle
以下之一:
"Visible"
正常标题栏。- “透明”使标题栏透明,显示窗口的背景颜色,如果不需要在实际的HTML中显示标题栏,则非常有用。这让您可以避免使用
TitleBarStyle::Overlay
的风险。当Tauri允许您设置自定义窗口背景颜色时,它将更有用。 - “覆盖”将在窗口内容上显示标题栏作为透明覆盖。请注意:- 标题栏的高度在不同的操作系统版本中不同,这可能导致窗口控制项和标题不在您期望的位置。- 您需要定义一个自定义拖动区域以便使窗口可拖动,但由于限制,当窗口不在焦点时您无法拖动它 <https://github.com/tauri-apps/tauri/issues/4316>。- 窗口标题的颜色取决于系统主题。
如何在macOS上显示窗口标题栏。
TrayIconConfig
应用程序托盘图标配置。
更多:<https://v2.tauri.org.cn/reference/config/#trayiconconfig>
对象属性:
- iconAsTemplate
- iconPath (必需)
- id
- menuOnLeftClick
- showMenuOnLeftClick
- title
- tooltip
iconAsTemplate
boolean
一个布尔值,用于确定该图像是否表示macOS上的模板图像。
iconPath
字符串
默认图标路径,用于托盘图标。
注意:此存储在最终二进制文件中的图像是原始像素,因此请保持图标尺寸(宽度高度)小,否则它将使最终可执行文件变得庞大。
id
string
或 null
为此托盘图标设置一个id,以便以后引用,默认值为main
。
menuOnLeftClick
boolean
一个布尔值,用于确定当托盘图标接收到左键点击时是否应显示菜单。
平台特定
- Linux:不支持。
默认值: true
showMenuOnLeftClick
boolean
一个布尔值,用于确定当托盘图标接收到左键点击时是否应显示菜单。
平台特定
- Linux:不支持。
默认值: true
title
string
或 null
macOS托盘标题
tooltip
string
或 null
Windows和macOS上托盘图标提示
更新器
以下任意一项:
V1Compatible
生成类v1兼容的压缩更新程序boolean
是否生成更新程序及其签名
更新器类型
V1Compatible
"v1Compatible"
,生成类v1兼容的压缩更新程序
生成类v1兼容的压缩更新程序
Value
以下任意一项:
null
表示一个空JSON值。boolean
表示一个 [bool
].Number
表示一个有效的ACL [Number
].string
表示一个 [String
].Value
[] 表示其他 [Value
] 的列表。- 表示以 [
String
] 键为键,以 [Value
] 为值的映射。 允许额外属性:Value
所有支持的ACL值。
WebviewInstallMode
以下之一:
- 不要将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 - 类型(必需) ##### silent
布尔型
指示安装程序以静默模式运行。默认为true
。 默认值:true
##### type"offlineInstaller"
- 嵌入固定版本的webview2并在运行时使用它。安装程序大小增加约180MB。 对象属性: - path(必需) - type(必需) ##### path
字符串
要使用的固定运行时的路径。固定版本可以在官方网站上下载。需要将.cab
文件提取到文件夹中,并将此文件夹路径在此字段中定义。 ##### type"fixedRuntime"
Webview2运行时的安装模式。注意对于更新器包[Self::DownloadBootstrapper
] 使用。
有关更多信息,请参阅 <https://v2.tauri.org.cn/distribute/windows-installer/#webview2-installation-options>。
WebviewUrl
以下任意一项:
字符串
格式化为uri
一个外部URL。必须使用http
或https
方案。字符串
应用URL中的路径部分。例如,要加载tauri://127.0.0.1/users/john
,可以在此配置中提供users/john
。字符串
格式化为uri
一个自定义协议URL,例如,doom://index.html
在Tauri webview窗口中打开的URL。
WindowConfig
窗口配置对象。
更多信息:<https://v2.tauri.org.cn/reference/config/#windowconfig>
对象属性:
- acceptFirstMouse
- additionalBrowserArgs
- alwaysOnBottom
- alwaysOnTop
- backgroundColor
- browserExtensionsEnabled
- center
- closable
- contentProtected
- create
- decorations
- devtools
- dragDropEnabled
- focus
- fullscreen
- height
- hiddenTitle
- incognito
- label
- maxHeight
- maximizable
- maximized
- maxWidth
- minHeight
- minimizable
- minWidth
- parent
- proxyUrl
- resizable
- shadow
- skipTaskbar
- tabbingIdentifier
- theme
- title
- titleBarStyle
- transparent
- url
- useHttpsScheme
- userAgent
- visible
- visibleOnAllWorkspaces
- width
- windowClassname
- windowEffects
- x
- y
- zoomHotkeysEnabled
acceptFirstMouse
boolean
是否在macOS中点击非活动窗口也将点击到webview。
additionalBrowserArgs
string
或 null
在Windows上定义额外的浏览器参数。默认情况下,wry传递--disable-features=msWebOOUI,msPdfOOUI,msSmartScreenProtection
,因此如果您使用此方法,您也需要自己禁用这些组件。
alwaysOnBottom
boolean
窗口是否应该始终位于其他窗口下方。
alwaysOnTop
boolean
窗口是否应该始终位于其他窗口上方。
backgroundColor
颜色
| null
设置窗口和webview的背景颜色。
平台特定
- Windows:对于窗口层,忽略alpha通道。
- Windows:在Windows 7上,忽略webview层的alpha通道。
- Windows:在Windows 8和更新的版本上,如果alpha通道不是
0
,则对于webview层将忽略。
browserExtensionsEnabled
boolean
是否可以为webview进程安装浏览器扩展
平台特定
- Windows:启用WebView2环境的
AreBrowserExtensionsEnabled
- MacOS / Linux / iOS / Android - 不支持。
center
boolean
窗口是否从中心开始或不是。
closable
boolean
窗口的本地关闭按钮是否启用或不是。
平台特定
- Linux:“GTK+会努力让窗口管理器不要显示关闭按钮。根据系统,当在已可见的窗口上调用此函数时,此功能可能没有任何效果。”
- iOS / Android:不支持。
默认值: true
contentProtected
boolean
防止其他应用程序捕捉窗口内容。
create
boolean
在应用程序启动时是否应创建此窗口。
当此设置为 false
时,您必须通过 app.config().app.windows
手动获取配置对象,并使用 WebviewWindowBuilder::from_config
创建。
默认值: true
decorations
boolean
窗口是否应有边框和栏。
默认值: true
devtools
boolean
或 null
启用网页检查器,通常称为浏览器开发者工具。默认启用。
此 API 在 调试 构建中工作,但在 发布 构建中启用它需要 devtools
功能标志。
平台特定
- macOS:这将调用 macOS 的私有函数。
- Android:在 Chrome 中打开
chrome://inspect/#devices
以获取开发者工具窗口。Wry 的WebView
开发者工具 API 在 Android 上不受支持。 - iOS:打开 Safari > 开发 > [您的设备名称] > [您的 WebView] 以获取开发者工具窗口。
dragDropEnabled
boolean
是否在 webview 上启用拖放。
为了在 Windows 前端使用 HTML5 拖放,必须禁用它。
默认值: true
focus
boolean
窗口是否将在初始时获得焦点。
默认值: true
fullscreen
boolean
窗口是否将以全屏方式启动。
height
number
,格式化为 double
窗口高度。
默认:600
hiddenTitle
boolean
如果 true
,则在 macOS 上隐藏窗口标题。
incognito
boolean
是否应在隐身模式下启动 webview。
平台特定
- Android:不受支持。
label
字符串
窗口标识符。它必须是字母数字。
默认:"main"
maxHeight
number
或 null
,格式化为 double
最大窗口高度。
maximizable
boolean
是否启用窗口的本地最大化按钮。如果可调整大小设置为 false,则忽略此设置。
平台特定
- macOS:禁用窗口标题栏中的“缩放”按钮,该按钮也用于进入全屏模式。
- Linux / iOS / Android:不受支持。
默认值: true
maximized
boolean
窗口是否已最大化。
maxWidth
number
或 null
,格式化为 double
最大窗口宽度。
minHeight
number
或 null
,格式化为 double
最小窗口高度。
minimizable
boolean
是否启用窗口的本地最小化按钮。
平台特定
- Linux / iOS / Android:不受支持。
默认值: true
minWidth
number
或 null
,格式化为 double
最小窗口宽度。
parent
string
或 null
将具有此标签的窗口设置为要创建的窗口的父窗口。
平台特定
- Windows:此操作将传入的父窗口设置为要创建的窗口的所有者窗口。参见MSDN 所有者窗口文档
- 所有者窗口始终在其所有者上方按 Z 轴排序。
- 当所有者被销毁时,系统会自动销毁所有者窗口。
- 当所有者最小化时,所有者窗口会隐藏。
- Linux:这使新窗口对父窗口来说是临时的,参见 <https://docs.gtk.org.cn/gtk3/method.Window.set_transient_for.html>
- macOS:这将在父窗口中将窗口作为子窗口添加,参见 <https://developer.apple.com/documentation/appkit/nswindow/1419152-addchildwindow?language=objc>
proxyUrl
string
| null
格式化为 uri
所有网络请求的 WebView 代理 URL。
必须是 http://
或 socks5://
URL。
平台特定
- macOS:需要
macos-proxy
功能标志,并且仅编译 macOS 14 及以上版本。
resizable
boolean
是否可调整窗口大小。当可调整大小设置为 false 时,将自动禁用本地窗口的最大化按钮。
默认值: true
shadow
boolean
是否在窗口上添加阴影。
平台特定
- Windows
false
对装饰窗口没有影响,阴影始终开启。true
将使无装饰窗口有 1px 白色边框,在 Windows 11 上还将有圆角。
- Linux: 不支持。
默认值: true
skipTaskbar
boolean
如果 true
,则在 Windows 和 Linux 上隐藏任务栏中的窗口图标。
tabbingIdentifier
string
或 null
定义 macOS 窗口的 制表符标识符。
具有匹配制表符标识符的窗口将被分组在一起。如果未设置制表符标识符,则将禁用自动制表符。
theme
主题
| null
初始窗口主题。默认为系统主题。仅在 Windows 和 macOS 10.14+ 上实现。
title
字符串
窗口标题。
默认: "Tauri 应用"
titleBarStyle
macOS 标题栏样式。
默认: "可见"
transparent
boolean
窗口是否透明。
注意,在 macOS
上,这需要启用 macos-private-api
功能标志,这可以在 tauri > macOSPrivateApi
下启用。警告:在 macOS
上使用私有 API 会使您的应用程序无法被接受到 App Store
。
url
窗口 webview URL。
默认: "index.html"
useHttpsScheme
boolean
设置是否应在 Windows 和 Android 上使用 https://<scheme>.localhost
而不是默认的 http://<scheme>.localhost
。默认为 false
。
注释
使用 https
方案将不允许在尝试抓取 http
端点时混合内容,因此不会匹配 macOS 和 Linux 使用的 <scheme>://127.0.0.1
协议的行为。
警告
在版本之间更改此值将更改 IndexedDB、cookies 和本地存储的位置,您的应用程序将无法访问旧数据。
userAgent
string
或 null
webview 的用户代理。
visible
boolean
窗口是否可见。
默认值: true
visibleOnAllWorkspaces
boolean
窗口是否应在所有工作区或虚拟桌面上可见。
平台特定
- Windows / iOS / Android: 不支持。
width
number
,格式化为 double
窗口宽度。
默认: 800
windowClassname
string
或 null
在 Windows 上创建窗口时使用的窗口类的名称。**仅 Windows**。
windowEffects
WindowEffectsConfig
| null
窗口效果。
需要窗口透明。
平台特定
- Windows:如果使用装饰或阴影,您可能希望尝试此解决方法 <https://github.com/tauri-apps/tao/issues/72#issuecomment-975607891>
- Linux:不支持
x
number
或 null
,格式化为 double
窗口左上角的水平位置
y
number
或 null
,格式化为 double
窗口左上角垂直位置
zoomHotkeysEnabled
boolean
是否启用通过热键进行页面缩放
平台特定
-
Windows:控制 WebView2 的
IsZoomControlEnabled
设置。 -
MacOS / Linux:注入一个填充程序,通过
ctrl/command
+-/=
缩放,每次缩放 20%,范围从 20% 到 1000%。需要webview:allow-set-webview-zoom
权限 -
Android / iOS:不支持。
WindowEffect
以下之一:
"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 build 22000 上调整大小/拖动窗口时,此效果性能不良。
特定平台的窗口效果
WindowEffectsConfig
窗口效果配置对象
对象属性:
- 颜色
- 效果(必需)
- 半径
- 状态
颜色
颜色
| null
窗口效果颜色。影响 Windows 10 v1903+ 上的 [WindowEffect::Blur
] 和 [WindowEffect::Acrylic
],对 Windows 7 或 Windows 11 无影响。
效果
要应用到窗口的窗口效果的列表。冲突的效果将应用第一个并忽略其余的。
半径
number
或 null
,格式化为 double
窗口效果圆角半径 仅 macOS
状态
WindowEffectState
| null
窗口效果状态 仅 macOS
WindowEffectState
以下之一:
"followsWindowActiveState"
使窗口效果状态跟随窗口的激活状态"active"
使窗口效果状态始终处于激活状态"inactive"
使窗口效果状态始终处于非激活状态
窗口效果状态 仅 macOS
<https://developer.apple.com/documentation/appkit/nsvisualeffectview/state>
WindowsConfig
Windows 打包配置。
更多请参阅:<https://v2.tauri.org.cn/reference/config/#windowsconfig>
对象属性:
- allowDowngrades
- certificateThumbprint
- digestAlgorithm
- nsis
- signCommand
- timestampUrl
- tsp
- webviewInstallMode
- wix
allowDowngrades
boolean
验证第二次应用程序安装,如果设置为 false
,则阻止用户安装旧版本。
例如,如果已安装 1.2.1
,则用户将无法安装应用程序版本 1.2.0
或 1.1.5
。
此标志的默认值为 true
。
默认值: true
certificateThumbprint
string
或 null
指定签名证书的 SHA1 哈希。
digestAlgorithm
string
或 null
指定用于创建文件签名的文件摘要算法。代码签名所需。SHA-256 建议使用。
nsis
NsisConfig
| null
使用 NSIS 生成的安装程序的配置。
signCommand
CustomSignCommandConfig
| null
指定用于签名二进制的自定义命令。此命令需要在参数中有一个 %1
,它只是一个用于二进制路径的占位符,我们将在调用命令之前检测和替换它。
默认情况下,我们使用 signtool.exe
,该命令只能在Windows上找到,因此如果您在其他平台上进行交叉编译并签名,则需要使用其他工具,如 osslsigncode
。
timestampUrl
string
或 null
用于时间戳的服务器。
tsp
boolean
是否使用时间戳协议(TSP,即RFC 3161)进行时间戳服务器。您的代码签名提供商可能使用TSP时间戳服务器,例如,SSL.com就是这样。如果是这样,通过将其设置为true来启用TSP。
webviewInstallMode
Webview2运行时的安装模式。
{ "silent": true, "type": "downloadBootstrapper"}
wix
WixConfig
| null
使用WiX生成的MSI配置。
WixConfig
使用WiX的MSI包配置。
更多信息:<https://v2.tauri.org.cn/reference/config/#wixconfig>
对象属性:
- bannerPath
- componentGroupRefs
- componentRefs
- dialogImagePath
- enableElevatedUpdateTask
- featureGroupRefs
- featureRefs
- fragmentPaths
- language
- mergeRefs
- 模板
- upgradeCode
- version
bannerPath
string
或 null
用于安装用户界面横幅的位图文件路径。此位图将出现在除第一页之外的所有安装程序的顶部。
所需尺寸为 493px × 58px。
componentGroupRefs
字符串
[]
您想要从片段中引用的ComponentGroup元素ID。
默认: []
componentRefs
字符串
[]
您想要从片段中引用的Component元素ID。
默认: []
dialogImagePath
string
或 null
用于安装用户界面对话框的位图文件路径。它用于欢迎和完成对话框。
所需尺寸为 493px × 312px。
enableElevatedUpdateTask
boolean
在Windows任务调度器中创建提升更新任务。
featureGroupRefs
字符串
[]
您想要从片段中引用的FeatureGroup元素ID。
默认: []
featureRefs
字符串
[]
您想要从片段中引用的Feature元素ID。
默认: []
fragmentPaths
字符串
[]
具有WiX片段的.wxs文件路径列表。
默认: []
language
要构建的安装程序语言。见 <https://docs.microsoft.com/en-us/windows/win32/msi/localizing-the-error-and-actiontext-tables>
默认: "en-US"
mergeRefs
字符串
[]
您想要从片段中引用的Merge元素ID。
默认: []
模板
string
或 null
要使用的自定义.wxs模板。
upgradeCode
string
| null
格式化为 uuid
MSI安装程序的GUID升级代码。此代码 必须在所有更新中保持一致,否则,Windows将把您的更新视为不同的应用程序,您的用户将拥有您应用的重复版本。
默认情况下,Tauri通过在DNS命名空间中使用字符串 <productName>.exe.app.x64
生成Uuid v5来生成此代码。您可以使用Tauri的CLI为您生成和打印此代码,运行 tauri inspect wix-upgrade-code
。
建议您在您的Tauri配置文件中设置此值,以避免在更改产品名称时意外更改升级代码。
version
string
或 null
格式为 major.minor.patch.build
(可选)的MSI安装程序版本。
由于要求MSI安装程序必须有一个有效的版本,如果此字段未设置,它将从 [Config::version
] 中派生。
第一字段是主版本,最大值为255。第二字段是次要版本,最大值为255。第三和第四字段的最大值均为65,535。
更多信息见 <https://learn.microsoft.com/en-us/windows/win32/msi/productversion>
WixLanguage
以下任意一项:
string
要构建的单个语言,没有配置。string
[] 要构建的语言列表,没有配置。- 语言及其配置的映射。 允许额外的属性:
WixLanguageConfig
使用WiX构建的语言。
WixLanguageConfig
为WiX构建的目标语言配置。
查看更多:<https://v2.tauri.org.cn/reference/config/#wixlanguageconfig>
对象属性:
- localePath
localePath
string
或 null
地区(.wxl)文件的路径。见 <https://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/build_a_localized_version.html>。
© 2025 Tauri 贡献者。CC-BY / MIT