配置
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": "http://localhost:3000", "frontendDist": "../dist" }, "app": { "security": { "csp": null }, "windows": [ { "fullscreen": false, "height": 600, "resizable": true, "title": "Tauri App", "width": 800 } ] }, "bundle": {}, "plugins": {}}
对象属性:
- app
- build
- bundle
- identifier (必需)
- mainBinaryName
- plugins
- productName
- version
app
App 配置。
{ "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
string
反向域名表示法中的应用程序标识符(例如 com.tauri.example
)。此字符串在应用程序之间必须是唯一的,因为它用于系统配置,如捆绑 ID 和 webview 数据目录的路径。此字符串必须仅包含字母数字字符(A-Z、a-z 和 0-9)、连字符 (-) 和句点 (.)。
mainBinaryName
string
| null
App 主二进制文件名。默认为您的 cargo crate 的名称。
plugins
插件配置。
默认值: {}
productName
string
| null
^[^/\:*?"<>|]+$
模式
App 名称。
version
string
| null
App 版本。它是一个 semver 版本号或包含 version
字段的 package.json
文件的路径。如果删除,则使用 Cargo.toml
中的版本号。
默认情况下,Android 上使用版本 1.0。
定义
AndroidConfig
Android 目标的通用配置。
对象属性:
- 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
App 配置对象。
查看更多:<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
AppImage 捆绑包的配置。
查看更多:<https://v2.tauri.org.cn/reference/config/#appimageconfig>
对象属性:
- bundleMediaFramework
- files
bundleMediaFramework
boolean
包含音频和视频播放所需的其他 gstreamer 依赖项。这会使捆绑包大小增加约 15-35MB,具体取决于您的构建系统。
files
要包含在 Appimage 二进制文件中的文件。
允许其他属性: string
默认值: {}
AssetProtocolConfig
资产自定义协议的配置。
查看更多:<https://v2.tauri.org.cn/reference/config/#assetprotocolconfig>
对象属性:
- enable
- scope
enable
boolean
启用资产协议。
scope
资产协议的访问作用域。
默认值: []
AssociationExt
string
[FileAssociation
] 的扩展。
前导 .
会自动去除。
BackgroundThrottlingPolicy
以下之一:
"disabled"
禁用后台节流的策略"suspend"
Webview 不在窗口中时完全暂停任务的策略。这通常是在未设置策略情况下的默认行为。"throttle"
Webview 不在窗口中时限制处理,但不会完全暂停任务的策略。
后台节流策略。
BeforeDevCommand
以下任一项:
string
使用默认选项运行给定脚本。- 使用自定义选项运行给定脚本。对象属性:- cwd - script (必需) - 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。
这通常是开发服务器的 URL,它使用热重载和 HMR 提供您的应用程序资源。大多数现代 JavaScript 打包器(如 vite)都提供了一种默认启动开发服务器的方法。
如果您没有开发服务器或不想使用开发服务器,请忽略此选项并使用 frontendDist
并指向 Web 资源目录,Tauri CLI 将运行其内置开发服务器并提供简单的热重载体验。
features
string
[] | null
传递给 cargo
命令的功能。
frontendDist
FrontendDist
| null
应用程序资源的路径(通常是 javascript 打包器的 dist
文件夹)或 URL,该 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 查找
- Windows 的“my-binary-x86_64-pc-windows-msvc.exe”
- macOS 的“my-binary-x86_64-apple-darwin”
- Linux 的“my-binary-x86_64-unknown-linux-gnu”
因此,请不要忘记为所有目标平台提供二进制文件。
fileAssociations
FileAssociation
[] | null
应用程序的文件关联。
homepage
string
| null
指向您的应用程序主页的 URL。如果未设置,将回退到 Cargo.toml
中定义的 homepage
。
支持的捆绑目标:deb
、rpm
、nsis
和 msi
。
icon
string
[]
应用程序的图标
默认值: []
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
应用程序的发布者。默认为标识符字符串中的第二个元素。
当前映射到 Windows Installer 的 Manufacturer 属性和 debian 软件包的 Maintainer 字段(如果 Cargo.toml 没有 authors 字段)。
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/
中。如果为 false,工具将缓存在当前用户的平台特定缓存目录中。
一个可以将此设置为 true
的适当示例是在以 Windows 系统用户(例如,AWS EC2 工作负载)身份构建此应用程序时,因为 Window 系统的应用程序数据目录受到限制。
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"
Microsoft Installer 捆绑包 (.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 (必需)
- 本地
- 权限 (必需)
- 平台
- 远程
- webview 视图
- windows
描述
string
描述能力旨在允许在关联窗口上执行的操作。
它应该包含对分组权限应允许的操作的描述。
示例
此能力允许 main
窗口访问 filesystem
写入相关命令和 dialog
命令,以实现对用户选择文件的程序化访问。
identifier
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"]}
webview 视图
string
[]
受此能力影响的 webview 列表。可以是 glob 模式。
仅当在多 webview 上下文中使用时才需要此项;默认情况下,与 [Self::windows
] 匹配的窗口的所有子 webview 都会被链接。
示例
["sub-webview-one", "sub-webview-two"]
windows
string
[]
受此能力影响的窗口列表。可以是 glob 模式。
在多 webview 窗口中,为了实现细粒度的访问控制,首选 [Self::webviews
]。
示例
["main"]
CapabilityEntry
以下任一项:
Capability
一个内联能力。string
对能力标识符的引用。
能力条目可以是内联能力,也可以是对在其自身文件中定义的能力的引用。
CapabilityRemote
与能力关联的远程 URL 的配置。
对象属性:
- urls (必需)
urls
string
[]
此能力引用的远程域,使用 URLPattern 标准。
示例
- “https://*.mydomain.dev”:允许 mydomain.dev 的子域名
- “https://mydomain.dev/api/*”:允许 mydomain.dev/api 的任何子路径
Color
以下任一项:
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
Csp
以下任一项:
string
单个文本字符串中的完整 CSP 策略。- 将指令与其源值映射为字符串列表的对象。允许其他属性:
CspDirectiveSources
Content-Security-Policy 定义。请参阅 <https://mdn.org.cn/en-US/docs/Web/HTTP/CSP>。
CspDirectiveSources
以下任一项:
string
CSP 源的内联列表。与 [Self::List
] 相同,但使用空格分隔符连接。string
[] CSP 源的列表。集合将使用空格分隔符连接,形成 CSP 字符串。
Content-Security-Policy 指令源列表。请参阅 <https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources>。
CustomSignCommandConfig
以下任一项:
string
要执行的脚本的字符串表示法。“%1” 将被替换为要签名的二进制文件的路径。这是命令的更简单表示法。Tauri 将使用' '
分割字符串,并将第一个元素用作命令名称,其余元素用作参数。如果需要在命令或参数中使用空格,请使用对象表示法 [Self::ScriptWithOptions
]。- 命令的对象表示法。这是命令的更复杂表示法,但它允许在命令和参数中使用空格。对象属性:- args (必需) - cmd (必需) ##### 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 Control 文件中的部分。请参阅: 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 Disk Image (.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}
FileAssociation
文件关联
对象属性:
- 描述
- ext (必需)
- mimeType
- 名称
- 角色
描述
string
| null
关联描述。仅限 Windows。它显示在 Windows 资源管理器的“类型”列中。
ext
要与此应用程序关联的文件扩展名。例如 “png”
mimeType
string
| null
mime 类型,例如 “image/png” 或 “text/plain”。仅限 Linux。
名称
string
| null
名称。映射到 macOS 上的 CFBundleTypeName
。默认为 ext[0]
角色
应用程序在类型方面的角色。映射到 macOS 上的 CFBundleTypeRole
。
默认值: "Editor"
FrontendDist
以下任一项:
string
格式为uri
的外部 URL,应作为默认应用程序 URL 使用。string
包含前端 dist 资产的目录的路径。string
[] 要嵌入到应用程序中的文件数组。
定义要嵌入到应用程序中的 URL 或资产。
FsScope
以下任一项:
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
、$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
函数发送的每个响应中设置。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
- 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 响应标头传达了浏览器阻止对给定资源的无 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
以下任一项:
string
标头值的字符串版本string
[] 标头值的列表版本。项由 ”,” 连接以形成真实的标头值- (Rust 结构体 | Json | JavaScript 对象) 标头值的等效项。项由以下内容组成:键 + 空格 + 值。项然后由 ”;” 连接以形成真实的标头值 允许其他属性:
string
标头源的定义
标头名称的标头值
HookCommand
以下任一项:
string
使用默认选项运行给定脚本。- 使用自定义选项运行给定的脚本。对象属性:- cwd - script (必需) ##### cwd
string
|null
当前工作目录。##### scriptstring
要执行的脚本。
描述在触发 CLI 钩子时要执行的 shell 命令。
Identifier
string
IosConfig
iOS 目标的常规配置。
对象属性:
- 开发团队
- 框架
- 最低系统版本
- 模板
开发团队
string
| null
开发团队。此值是 iOS 开发所必需的,因为强制执行代码签名。APPLE_DEVELOPMENT_TEAM
环境变量可以设置为覆盖它。
框架
string
[] | null
指示任何需要与应用程序捆绑的 iOS 框架的字符串列表。
请注意,您需要重新创建 iOS 项目才能应用更改。
最低系统版本
string
指示捆绑的应用程序支持的最低 iOS 版本的版本字符串。默认为 13.0
。
映射到 IPHONEOS_DEPLOYMENT_TARGET 值。
默认值: "13.0"
模板
string
| null
要使用的自定义 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
entitlements 文件的路径。
exceptionDomain
string
| null
允许您的应用程序与外部世界通信。它应该是小写的,没有端口和协议的域名。
files
要包含在应用程序中的文件,相对于 Contents 目录。
允许其他属性: string
默认值: {}
框架
string
[] | null
指示任何需要与应用程序捆绑的 macOS X 框架的字符串列表。
如果使用名称,则必须省略 “.framework”,它将查找标准安装位置。您也可以使用特定框架的路径。
hardenedRuntime
boolean
codesign 是否应启用 <hardened runtime>(对于可执行文件)。
默认值: true
最低系统版本
string
| null
指示捆绑的应用程序支持的最低 macOS X 版本的版本字符串。默认为 10.13
。
将其设置为 null
会完全删除捆绑包的 Info.plist
上的 LSMinimumSystemVersion
字段和 MACOSX_DEPLOYMENT_TARGET
环境变量。
空字符串被视为无效值,因此使用默认值。
默认值: "10.13"
providerShortName
string
| null
公证的提供商简称。
signingIdentity
string
| null
用于代码签名的身份。
NsisCompression
以下之一:
"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>
NsisConfig
使用 NSIS 的安装程序捆绑包的配置。
对象属性:
- 压缩
- 自定义语言文件
- 显示语言选择器
- 标头图像
- 安装程序钩子
- 安装程序图标
- 安装模式
- 语言
- 最低 Webview2 版本
- 侧边栏图像
- 开始菜单文件夹
- 模板
压缩
设置用于压缩安装程序中文件的压缩算法。
请参阅 <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>。
最低 Webview2 版本
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 模板。
NSISInstallerMode
以下之一:
"currentUser"
安装程序的默认模式。默认情况下,将应用程序安装在不需要管理员访问权限的目录中。安装程序元数据将保存在HKCU
注册表路径下。"perMachine"
默认情况下,将应用程序安装在Program Files
文件夹目录中,安装需要管理员访问权限。安装程序元数据将保存在HKLM
注册表路径下。"both"
结合了两种模式,并允许用户在安装时选择是为当前用户安装还是为每台计算机安装。请注意,即使该模式仅限用户为当前用户安装,也需要管理员访问权限。安装程序元数据将根据用户的选择保存在HKLM
或HKCU
注册表路径下。
NSIS 安装程序的安装模式。
Number
以下任一项:
integer
格式为int64
表示 [i64
]。number
格式为double
表示 [f64
]。
有效的 ACL 数字。
PatternKind
以下之一:
- Brownfield 模式。对象属性:- use (必需) ##### use
"brownfield"
- 隔离模式。建议出于安全目的使用。对象属性:- options (必需) - use (必需) ##### options 对象属性:- dir (必需) ###### dir
string
包含 index.html 文件的目录,其中包含安全隔离应用程序。##### use"isolation"
应用程序模式。
PermissionEntry
以下任一项:
Identifier
通过标识符引用权限或权限集。- 通过标识符引用权限或权限集并扩展其作用域。对象属性:- allow - deny - identifier (必需) ##### allow
Value
[] |null
定义作用域允许的数据。##### denyValue
[] |null
定义作用域拒绝的数据。验证逻辑应优先考虑此项。##### identifierIdentifier
权限或权限集的标识符。
[Capability
] 中的权限值条目可以是原始权限 [Identifier
] 或引用权限并扩展其作用域的对象。
PluginConfig
插件配置包含将插件名称映射到其配置对象的 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 依赖项列表 - 如果安装了此软件包,则会自动移除列为“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 依赖项列表。
release
string
RPM release 标签。
默认值: "1"
SecurityConfig
安全配置。
更多信息:<https://v2.tauri.org.cn/reference/config/#securityconfig>
对象属性:
- 资产协议
- 能力
- csp
- dangerousDisableAssetCspModification
- devCsp
- 冻结原型
- 标头
- 模式
资产协议
自定义协议配置。
{ "enable": false, "scope": []}
能力
在应用程序上启用的能力列表。
如果列表为空,则包含所有能力。
默认值: []
csp
Csp
| null
将在构建的应用程序的所有 HTML 文件中注入的 Content Security Policy。如果未指定 dev_csp
,则此值也会在开发环境中注入。
这是配置中非常重要的一部分,因为它有助于确保您的 WebView 的安全。请参阅 <https://mdn.org.cn/en-US/docs/Web/HTTP/CSP>。
dangerousDisableAssetCspModification
禁用 Tauri 注入的 CSP 源。
在编译时,Tauri 解析所有前端资产并更改 Content-Security-Policy,以仅允许通过注入 nonce 和哈希源来加载您自己的脚本和样式。这会严格限制您的 CSP,这可能会在使用其他灵活源时引入问题。
此配置选项允许布尔值和字符串列表作为值。布尔值指示 Tauri 禁用所有 CSP 注入的注入,字符串列表指示 Tauri 无法注入的 CSP 指令。
警告: 仅当您知道自己在做什么并已正确配置 CSP 时才禁用此项。如果没有此 Tauri 保护,您的应用程序可能容易受到 XSS 攻击。
devCsp
Csp
| null
将在开发环境的所有 HTML 文件中注入的 Content Security Policy。
这是配置中非常重要的一部分,因为它有助于确保您的 WebView 的安全。请参阅 <https://mdn.org.cn/en-US/docs/Web/HTTP/CSP>。
冻结原型
boolean
在使用自定义协议时冻结 Object.prototype
。
标头
HeaderConfig
| null
标头,这些标头添加到从 tauri 到 webview 的每个 http 响应中。这不包括 IPC 消息和错误响应
模式
要使用的模式。
{ "use": "brownfield"}
Size
窗口的大小。
对象属性:
- height (必需)
- width (必需)
height
integer
格式为 uint32
窗口的高度。
width
integer
格式为 uint32
窗口的宽度。
Target
以下之一:
"macOS"
MacOS。"windows"
Windows。"linux"
Linux。"android"
Android。"iOS"
iOS。
平台目标。
Theme
以下之一:
"Light"
浅色主题。"Dark"
深色主题。
系统主题。
TitleBarStyle
以下之一:
"Visible"
普通标题栏。"Transparent"
使标题栏透明,以便显示窗口背景颜色。如果您不需要在标题栏下方有实际的 HTML 内容,这将非常有用。这使您可以避免使用TitleBarStyle::Overlay
的注意事项。当 Tauri 允许您设置自定义窗口背景颜色时,这将更加有用。"Overlay"
将标题栏显示为窗口内容之上的透明覆盖层。请记住: - 标题栏的高度在不同的操作系统版本上有所不同,这可能导致窗口控件和标题不在您期望的位置。 - 您需要定义自定义拖动区域以使您的窗口可拖动,但是由于限制,当窗口未处于焦点状态时,您无法拖动窗口 <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
string
用于托盘图标的默认图标路径。
注意:这会将图像以原始像素形式存储到最终二进制文件中,因此请保持图标尺寸(宽度和高度)较小,否则会使您的最终可执行文件膨胀
id
string
| null
为此托盘图标设置一个 ID,以便稍后引用它,默认为 main
。
menuOnLeftClick
boolean
一个布尔值,用于确定当托盘图标接收到鼠标左键单击时是否应显示菜单。
平台特定
- Linux:不支持。
默认值: true
showMenuOnLeftClick
boolean
一个布尔值,用于确定当托盘图标接收到鼠标左键单击时是否应显示菜单。
平台特定
- Linux:不支持。
默认值: true
title
string
| null
MacOS 托盘的标题
tooltip
string
| null
Windows 和 macOS 上的托盘图标工具提示
更新器
以下任一项:
V1Compatible
生成旧版 zipped v1 兼容的更新程序boolean
是否生成更新程序及其签名
更新程序类型
V1Compatible
"v1Compatible"
,生成旧版 zipped v1 兼容的更新程序
生成旧版 zipped v1 兼容的更新程序
Value
以下任一项:
null
表示一个 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 - 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>。
WebviewUrl
以下任一项:
string
格式为uri
外部 URL。必须使用http
或https
方案。string
应用程序 URL 的路径部分。例如,要加载tauri://localhost/users/john
,您只需在此配置中提供users/john
即可。string
格式为uri
自定义协议 URL,例如,doom://index.html
要在 Tauri webview 窗口中打开的 URL。
WindowConfig
窗口配置对象。
查看更多: <https://v2.tauri.org.cn/reference/config/#windowconfig>
对象属性:
- acceptFirstMouse
- additionalBrowserArgs
- alwaysOnBottom
- alwaysOnTop
- backgroundColor
- backgroundThrottling
- 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
Color
| null
设置窗口和 webview 背景颜色。
平台特定
- Windows:窗口图层忽略 alpha 通道。
- Windows:在 Windows 7 上,webview 图层忽略 alpha 通道。
- Windows:在 Windows 8 及更高版本上,如果 alpha 通道不为
0
,则 webview 图层将忽略它。
backgroundThrottling
BackgroundThrottlingPolicy
| null
更改默认的后台节流行为。
默认情况下,浏览器使用暂停策略,该策略将在视图最小化或隐藏后大约 5 分钟后节流计时器甚至卸载整个选项卡(视图),以释放资源。这将暂停所有任务,直到文档的可见性状态通过将视图带回前台而从隐藏变为可见。
平台特定
- Linux / Windows / Android:不支持。类似挂起的 WebLock 事务的解决方法可能就足够了。
- iOS:自 17.0+ 版本起受支持。
- macOS:自 14.0+ 版本起受支持。
请参阅 https://github.com/tauri-apps/tauri/issues/5250#issuecomment-2569380578
browserExtensionsEnabled
boolean
是否可以为 webview 进程安装浏览器扩展
平台特定
- Windows:启用 WebView2 环境的
AreBrowserExtensionsEnabled
- MacOS / Linux / iOS / Android - 不支持。
center
boolean
窗口是否居中启动。
closable
boolean
窗口的本机关闭按钮是否启用。
平台特定
- Linux: “GTK+ 将尽力说服窗口管理器不显示关闭按钮。根据系统,当在已经可见的窗口上调用此函数时,它可能没有任何效果”
- iOS / Android: 不支持。
默认值: true
contentProtected
boolean
防止窗口内容被其他应用程序捕获。
create
boolean
Tauri 是否应在应用程序启动时创建此窗口。
当设置为 false
时,您必须通过 app.config().app.windows
手动获取配置对象,并使用 WebviewWindowBuilder::from_config
创建它。
默认值: true
decorations
boolean
窗口是否应具有边框和栏。
默认值: true
devtools
boolean
| null
启用 Web 检查器,通常称为浏览器开发者工具。默认启用。
此 API 在 debug 构建中有效,但需要 devtools
功能标志才能在 release 构建中启用它。
平台特定
- 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
string
窗口标识符。它必须是字母数字。
默认值: "main"
maxHeight
number
| null
格式为 double
最大窗口高度。
maximizable
boolean
窗口的本机最大化按钮是否启用。如果 resizable 设置为 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
窗口是否可调整大小。当 resizable 设置为 false 时,本机窗口的最大化按钮将自动禁用。
默认值: true
shadow
boolean
窗口是否具有阴影。
平台特定
- Windows
false
对带装饰的窗口没有影响,阴影始终为 ON。true
将使不带装饰的窗口具有 1 像素白色边框,并且在 Windows 11 上,它将具有圆角。
- Linux: 不支持。
默认值: true
skipTaskbar
boolean
如果为 true
,则在 Windows 和 Linux 上从任务栏中隐藏窗口图标。
tabbingIdentifier
string
| null
定义 macOS 的窗口 tabbing identifier。
具有匹配 tabbing 标识符的窗口将分组在一起。如果未设置 tabbing 标识符,则将禁用自动选项卡。
theme
Theme
| null
初始窗口主题。默认为系统主题。仅在 Windows 和 macOS 10.14+ 上实现。
title
string
窗口标题。
默认值: "Tauri App"
titleBarStyle
macOS 标题栏的样式。
默认值: "Visible"
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
。
注意
当尝试获取 http
端点时,使用 https
方案将不允许混合内容,因此将与 macOS 和 Linux 上使用的 <scheme>://localhost
协议的行为不匹配。
警告
在版本之间更改此值将更改 IndexedDB、cookie 和本地存储位置,并且您的应用程序将无法访问旧数据。
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:注入一个 polyfill,使用
ctrl/command
+-/=
进行放大和缩小,每个步骤 20%,范围从 20% 到 1000%。需要webview:allow-set-webview-zoom
权限 -
Android / iOS:不支持。
WindowEffect
以下之一:
"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"
macOS 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 上调整大小/拖动窗口时,此效果性能较差。
平台特定的窗口效果
WindowEffectsConfig
窗口效果配置对象
对象属性:
- color
- effects (必填)
- radius
- state
color
Color
| null
窗口效果颜色。仅在 Windows 10 v1903+ 上影响 [WindowEffect::Blur
] 和 [WindowEffect::Acrylic
]。在 Windows 7 或 Windows 11 上没有任何效果。
effects
要应用于窗口的窗口效果列表。冲突的效果将应用第一个,并忽略其余的效果。
radius
number
| null
格式为 double
窗口效果圆角半径 仅限 macOS
state
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
指定用于对二进制文件进行签名的自定义命令。此命令需要在 args 中包含 %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
string
[]
您要从片段引用的 ComponentGroup 元素 ID。
默认值: []
componentRefs
string
[]
您要从片段引用的 Component 元素 ID。
默认值: []
dialogImagePath
string
| null
用于安装用户界面对话框的位图文件的路径。它用于欢迎和完成对话框。
所需的尺寸为 493px × 312px。
enableElevatedUpdateTask
boolean
在 Windows 任务计划程序中创建提升的更新任务。
featureGroupRefs
string
[]
您要从片段引用的 FeatureGroup 元素 ID。
默认值: []
featureRefs
string
[]
您要从片段引用的 Feature 元素 ID。
默认值: []
fragmentPaths
string
[]
包含要使用的 WiX 片段的 .wxs 文件路径列表。
默认值: []
language
要构建的安装程序语言。请参阅 <https://docs.microsoft.com/en-us/windows/win32/msi/localizing-the-error-and-actiontext-tables>。
默认值: "en-US"
mergeRefs
string
[]
您要从片段引用的 Merge 元素 ID。
默认值: []
模板
string
| null
要使用的自定义 .wxs 模板。
upgradeCode
string
| null
格式为 uuid
MSI 安装程序的 GUID 升级代码。此代码在您的所有更新中必须保持不变,否则,Windows 会将您的更新视为不同的应用程序,并且您的用户将拥有应用程序的重复版本。
默认情况下,tauri 通过使用字符串 <productName>.exe.app.x64
在 DNS 命名空间中生成 Uuid v5 来生成此代码。您可以使用 Tauri 的 CLI 为您生成和打印此代码,运行 tauri inspect wix-upgrade-code
。
建议您在 tauri 配置文件中设置此值,以避免在您想要更改产品名称时意外更改升级代码。
version
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>。
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