跳转到内容
Tauri

配置

这里是 Tauri 配置对象。它从一个文件中读取,您可以在其中定义前端资源,配置打包工具并定义一个托盘图标。

配置文件是由位于 Tauri 应用程序源目录(src-tauri)中的 tauri init 命令生成的。

一旦生成,您可以随意修改它以自定义您的 Tauri 应用程序。

文件格式

默认情况下,配置被定义为名为 tauri.conf.json 的 JSON 文件。

Tauri 还通过 config-json5config-toml Cargo 功能分别支持 JSON5 和 TOML 文件。JSON5 文件名必须是 tauri.conf.jsontauri.conf.json5。TOML 文件名是 Tauri.toml

平台特定配置

除了默认配置文件外,Tauri 还可以从以下文件中读取平台特定配置:tauri.linux.conf.jsontauri.windows.conf.jsontauri.macos.conf.jsontauri.android.conf.jsontauri.ios.conf.json(如果使用 Tauri.toml 格式,则为 Tauri.linux.tomlTauri.windows.tomlTauri.macos.tomlTauri.android.tomlTauri.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

应用

AppConfig

应用配置

默认值
{
"enableGTKAppId": false,
"macOSPrivateApi": false,
"security": {
"assetProtocol": {
"enable": false,
"scope": []
},
"capabilities": [],
"dangerousDisableAssetCspModification": false,
"freezePrototype": false,
"pattern": {
"use": "brownfield"
}
},
"windows": [],
"withGlobalTauri": false
}

build

BuildConfig

构建配置

默认值{}

bundle

BundleConfig

打包配置

默认值
{
"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

stringnull

应用主要二进制文件名。默认为你的 cargo crate 名称。

plugins

PluginConfig

插件配置。

默认值{}

productName

string | null 构型为 ^[^/\:*?"<>|]+$

应用名称。

version

stringnull

应用版本。它是一个 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

SecurityConfig

安全配置。

默认值
{
"assetProtocol": {
"enable": false,
"scope": []
},
"capabilities": [],
"dangerousDisableAssetCspModification": false,
"freezePrototype": false,
"pattern": {
"use": "brownfield"
}
}
trayIcon

TrayIconConfig | null

应用程序托盘图标的配置。

windows

WindowConfig[]

应用程序窗口配置。

默认: []

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

FsScope

资产协议的访问范围。

默认: []

AssociationExt

字符串

一个 [FileAssociation] 的扩展。

自动删除开头的 .

BeforeDevCommand

以下任意一项:

  • string 使用默认选项运行给定的脚本。
  • 使用自定义选项运行给定的脚本。 对象属性:- cwd - script (required) - wait ##### cwd string | null 当前工作目录。##### script string 要执行的脚本。##### wait boolean 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

stringnull

用于构建和运行应用程序的二进制文件。

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

AndroidConfig

Android 配置。

默认值
{
"minSdkVersion": 24
}
category

stringnull

应用程序类型。

应该是以下其中之一: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。

stringnull

与您的应用程序相关联的版权字符串。

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

stringnull

应用程序主页的URL。如果未设置,将回退到在Cargo.toml中定义的homepage

支持的捆绑包目标:debrpmnsismsi

icon

字符串[]

应用程序的图标

默认: []

iOS

IosConfig

iOS配置。

默认值
{
"minimumSystemVersion": "13.0"
}
license

stringnull

要包含在适当的捆绑包中的软件包许可标识符。如果未设置,默认为Cargo.toml文件中的许可。

licenseFile

stringnull

要在适当的捆绑包中包含的许可文件路径。

linux

LinuxConfig

Linux捆绑包的配置。

默认值
{
"appimage": {
"bundleMediaFramework": false,
"files": {}
},
"deb": {
"files": {}
},
"rpm": {
"epoch": 0,
"files": {},
"release": "1"
}
}
longDescription

stringnull

应用程序的较长、多行描述。

macOS

MacConfig

macOS捆绑包的配置。

默认值
{
"dmg": {
"appPosition": {
"x": 180,
"y": 170
},
"applicationFolderPosition": {
"x": 480,
"y": 170
},
"windowSize": {
"height": 400,
"width": 660
}
},
"files": {},
"hardenedRuntime": true,
"minimumSystemVersion": "10.13"
}
publisher

stringnull

应用程序的发布者。默认为标识符字符串的第二部分。

在没有在Cargo.toml中设置作者字段的情况下,当前映射到Windows安装程序的Manufacturer属性和Debian包的Maintainer字段。

resources

BundleResources | null

要捆绑的应用程序资源。每个资源都是一个文件或目录的路径。支持glob模式。

shortDescription

stringnull

您应用程序的简短描述。

targets

BundleTarget

捆绑包目标,目前支持[“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

WindowsConfig

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

以下任意一项:

要捆绑的目标。每个值不区分大小写。

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” 位置替换为目标二进制文件的路径。##### cmd string 运行以对二进制文件进行签名的命令。

自定义签名命令的配置。

DebConfig

Debian (.deb) 打包配置。

更多参见:<https://v2.tauri.org.cn/reference/config/#debconfig>

对象属性:

  • 版本更改记录
  • 冲突
  • 依赖
  • 桌面模板
  • files
  • 安装后脚本
  • 卸载后脚本
  • 预安装脚本
  • 预卸载脚本
  • 优先级
  • 提供
  • 推荐
  • 替换
  • 部分
版本更改记录

stringnull

未压缩的变更日志文件的路径,需要存储在 /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 依赖列表。

桌面模板

stringnull

自定义桌面文件 Handlebars 模板的路径。

可用变量: categoriescomment(可选)、execiconname

files

包中包含的文件列表。

允许额外的属性string

默认值{}

安装后脚本

stringnull

在包解压后执行的脚本路径。详情请参考:https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html

卸载后脚本

stringnull

在包删除后执行的脚本路径。详情请参考:https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html

预安装脚本

stringnull

在包解压前执行的脚本路径。详情请参考:https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html

预卸载脚本

stringnull

在包删除前执行的脚本路径。详情请参考:https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html

优先级

stringnull

更改 Debian 包的优先级。默认值为 optional。当前支持的优先级有:requiredimportantstandardoptionalextra

提供

string[] | null

包提供的依赖列表。

推荐

string[] | null

应用程序推荐使用的 deb 依赖列表。

替换

string[] | null

包替代列表。

部分

stringnull

在 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

Position

应用文件夹在窗口中的位置。

默认值
{
"x": 480,
"y": 170
}
appPosition

Position

应用文件在窗口中的位置。

默认值
{
"x": 180,
"y": 170
}
background

stringnull

在 dmg 文件中用作背景的图片。支持的格式: png / jpg / gif

windowPosition

Positionnull

体积窗口在屏幕上的位置。

windowSize

Size

体积窗口的大小。

默认值
{
"height": 400,
"width": 660
}

FileAssociation

文件关联

对象属性:

  • 描述
  • ext(必需)
  • mimeType
  • name
  • role
描述

stringnull

关联描述。只在 Windows 上显示。显示在 Windows 资源管理器的 Type 列中。

ext

AssociationExt[]

与该应用关联的文件扩展名。例如,'png'。

mimeType

stringnull

类型,例如 'image/png' 或 'text/plain'。Linux 仅支持。

name

stringnull

名称。映射到 macOS 上的 CFBundleTypeName。默认值为 ext[0]

role

BundleTypeRole

与应用程序相对于类型的角色。映射到 macOS 上的 CFBundleTypeRole

默认值: "Editor"

FrontendDist

以下任意一项:

  • stringuri 格式化。用作默认应用程序 URL 的外部 URL。
  • string 包含前端 dist 资产目录的路径。
  • string[] 要嵌入应用的文件数组。

定义要嵌入应用中的 URL 或资产。

FsScope

以下任意一项:

  • string[] 该范围允许的路径列表。
  • 完整的范围配置。对象属性:- 允许 - 拒绝 - requireLiteralLeadingDot ##### 允许 string[] 该范围允许的路径列表。 默认[] ##### 拒绝 string[] 该范围不允许的路径列表。此列表优先于 [Self::Scope::allow] 列表。 默认[] ##### requireLiteralLeadingDot boolean | 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-PolicyCross-Origin-Embedder-Policy 被设置为允许使用 SharedArrayBuffer。结果是,这些头在通过crates/tauri/src/protocol/tauri.rs中的get_response函数发送的每个响应上设置。内容安全策略头定义了单独的,因为它也单独处理。

对于helloworld示例,此配置转换为以下响应头

access-control-allow-origin: http://tauri.localhost
access-control-expose-headers: Tauri-Custom-Header
content-security-policy: default-src 'self'; connect-src ipc: http://ipc.localhost; script-src 'self' 'sha256-Wjjrs6qinmnr+tOry8x8PPwI77eGpUFR3EEGZktjJNs='
content-type: text/html
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
tauri-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 目标的通用配置。

对象属性:

  • 开发团队
  • 框架
  • 最低系统版本
  • 模板
开发团队

stringnull

开发团队。这个值对于iOS开发是必需的,因为代码签名是强制性的。《APPLE_DEVELOPMENT_TEAM》环境变量可以设置以覆盖它。

框架

string[] | null

指示需要与应用程序一起打包的任何iOS框架的字符串列表。

注意,您需要重创建iOS项目才能应用更改。

最低系统版本

字符串

指示捆绑应用程序支持的最低iOS版本的版本字符串。默认为《code dir="auto">13.0.

对应于IPHONEOS_DEPLOYMENT_TARGET值。

默认:《code dir="auto">"13.0"

模板

stringnull

用于的自定义《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

AppImageConfig

AppImage捆绑的配置。

默认值
{
"bundleMediaFramework": false,
"files": {}
}
deb

DebConfig

Debian捆绑的配置。

默认值
{
"files": {}
}
rpm

RpmConfig

RPM捆绑的配置。

默认值
{
"epoch": 0,
"files": {},
"release": "1"
}

MacConfig

macOS捆绑包的配置。

更多信息: 《<https://v2.tauri.org.cn/reference/config/#macconfig>

对象属性:

  • dmg
  • entitlements
  • exceptionDomain
  • files
  • 框架
  • hardenedRuntime
  • 最低系统版本
  • providerShortName
  • signingIdentity
dmg

DmgConfig

DMG特定的设置。

默认值
{
"appPosition": {
"x": 180,
"y": 170
},
"applicationFolderPosition": {
"x": 480,
"y": 170
},
"windowSize": {
"height": 400,
"width": 660
}
}
entitlements

stringnull

权限文件的路径。

exceptionDomain

stringnull

允许您的应用程序与外部世界通信。它应该是一个小写字符串,不包含端口号和协议域名。

files

相对于Contents目录包含在应用程序中的文件。

允许额外的属性string

默认值{}

框架

string[] | null

指示需要与应用程序一起捆绑的任何macOS X框架的字符串列表。

如果使用名称,则必须省略".framework",它将查找标准安装位置。您也可以使用特定框架的路径。

hardenedRuntime

boolean

是否使codesign启用强化运行时(对于可执行文件)或不禁用。

默认值: true

最低系统版本

stringnull

指示捆绑应用程序支持的最低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

stringnull

用于认证的提供者短名。

signingIdentity

stringnull

用于代码签名的标识符。

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
  • 侧边栏图像
  • 开始菜单文件夹
  • 模板
压缩

NsisCompression

设置用于压缩安装包中文件的压缩算法。

有关更多信息,请参阅《<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语言,则使用第一个语言。

标题图像

stringnull

显示在安装程序页面标题位置的位图文件路径。

推荐尺寸是150像素 x 57像素。

安装钩子

stringnull

包含特殊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
安装器图标

stringnull

作为安装器图标的图标文件路径。

安装模式

NSISInstallerMode

安装将针对所有用户还是仅针对当前用户。

默认: "currentUser"

语言

string[] | null

安装器语言列表。默认使用OS语言。如果列表中没有OS语言,则使用第一个语言。要允许用户选择语言,将display_language_selector设置为true

查阅 <https://github.com/kichik/nsis/tree/9465c08046f00ccb6eda985abbdbf52c275c6c4d/Contrib/Language%20files> 获取完整的语言列表。

minimumWebview2Version

stringnull

确保WebView2版本与此版本相等或更新,如果用户的WebView2版本低于此版本,安装程序将尝试触发WebView2更新。

侧边栏图像

stringnull

欢迎页面和完成页的位图文件路径。

推荐尺寸是164像素 x 314像素。

开始菜单文件夹

stringnull

设置开始菜单快捷方式的文件夹名称。

如果您有多个应用程序并且希望将它们的快捷方式组合在一个文件夹下,或者如果您通常希望将快捷方式设置在文件夹内,请使用此选项。

示例

  • AwesomePublisher,快捷方式将放置在%AppData%\Microsoft\Windows\Start Menu\Programs\AwesomePublisher\&lt;your-app&gt;.lnk
  • 如果未设置,快捷方式将放置在%AppData%\Microsoft\Windows\Start Menu\Programs\&lt;your-app&gt;.lnk
模板

stringnull

要使用自定义.nsi模板。

NSISInstallerMode

以下之一:

  • "currentUser":安装程序的默认模式。将应用程序默认安装在不需要管理员权限的目录中。安装程序元数据将保存在HKCU注册表路径下。
  • "perMachine":将应用程序默认安装在需要管理员权限的Program Files文件夹目录。安装程序元数据将保存在HKLM注册表路径下。
  • "both" 合并两种模式,并允许用户在安装时选择是为当前用户安装还是为每个机器安装。注意,即使用户只想为当前用户安装,此模式也将需要管理员访问权限。根据用户的选择,安装程序元数据将被保存在 HKLMHKCU 注册表路径下。

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 依赖项列表。

桌面模板

stringnull

自定义桌面文件 Handlebars 模板的路径。

可用变量: categoriescomment(可选)、execiconname

epoch

integer 按照 uint32 格式化

RPM 的 epoch。

files

包中包含的文件列表。

允许额外的属性string

默认值{}

obsoletes

string[] | null

您应用程序覆盖的 RPM 依赖列表 - 如果此包已安装,被列为“弃用”的包将自动移除(如果存在)。

安装后脚本

stringnull

解包后将要运行的脚本的路径。请参阅 <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>

卸载后脚本

stringnull

移除包后将要运行的脚本的路径。请参阅 <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>

预安装脚本

stringnull

解包包之前将要运行的脚本的路径。请参阅 <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>

预卸载脚本

stringnull

移除包之前将要运行的脚本的路径。请参阅 <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

AssetProtocolConfig

自定义协议配置。

默认值
{
"enable": false,
"scope": []
}
capabilities

CapabilityEntry[]

在应用程序上启用的功能列表。

如果列表为空,则包括所有功能。

默认: []

csp

Csp | null

所有生成应用程序中的 HTML 文件将注入的内容安全策略。如果没有指定 dev_csp,此值也将注入到开发中。

这是配置中非常重要的一部分,因为它有助于确保您的 WebView 是安全的。请参阅 <https://mdn.org.cn/en-US/docs/Web/HTTP/CSP>。

dangerousDisableAssetCspModification

DisabledCspModificationKind

禁用 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

PatternKind

要使用的模式。

默认值
{
"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

stringnull

为此托盘图标设置一个id,以便以后引用,默认值为main

boolean

一个布尔值,用于确定当托盘图标接收到左键点击时是否应显示菜单。

平台特定
  • Linux:不支持。

默认值: true

showMenuOnLeftClick

boolean

一个布尔值,用于确定当托盘图标接收到左键点击时是否应显示菜单。

平台特定
  • Linux:不支持。

默认值: true

title

stringnull

macOS托盘标题

tooltip

stringnull

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。必须使用httphttps方案。
  • 字符串应用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

stringnull

在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进程安装浏览器扩展

平台特定
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

booleannull

启用网页检查器,通常称为浏览器开发者工具。默认启用。

此 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

numbernull,格式化为 double

最大窗口高度。

maximizable

boolean

是否启用窗口的本地最大化按钮。如果可调整大小设置为 false,则忽略此设置。

平台特定
  • macOS:禁用窗口标题栏中的“缩放”按钮,该按钮也用于进入全屏模式。
  • Linux / iOS / Android:不受支持。

默认值: true

maximized

boolean

窗口是否已最大化。

maxWidth

numbernull,格式化为 double

最大窗口宽度。

minHeight

numbernull,格式化为 double

最小窗口高度。

minimizable

boolean

是否启用窗口的本地最小化按钮。

平台特定
  • Linux / iOS / Android:不受支持。

默认值: true

minWidth

numbernull,格式化为 double

最小窗口宽度。

parent

stringnull

将具有此标签的窗口设置为要创建的窗口的父窗口。

平台特定
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

stringnull

定义 macOS 窗口的 制表符标识符

具有匹配制表符标识符的窗口将被分组在一起。如果未设置制表符标识符,则将禁用自动制表符。

theme

主题 | null

初始窗口主题。默认为系统主题。仅在 Windows 和 macOS 10.14+ 上实现。

title

字符串

窗口标题。

默认: "Tauri 应用"

titleBarStyle

TitleBarStyle

macOS 标题栏样式。

默认: "可见"

transparent

boolean

窗口是否透明。

注意,在 macOS 上,这需要启用 macos-private-api 功能标志,这可以在 tauri &gt; macOSPrivateApi 下启用。警告:在 macOS 上使用私有 API 会使您的应用程序无法被接受到 App Store

url

WebviewUrl

窗口 webview URL。

默认: "index.html"

useHttpsScheme

boolean

设置是否应在 Windows 和 Android 上使用 https://&lt;scheme&gt;.localhost 而不是默认的 http://&lt;scheme&gt;.localhost。默认为 false

注释

使用 https 方案将不允许在尝试抓取 http 端点时混合内容,因此不会匹配 macOS 和 Linux 使用的 &lt;scheme&gt;://127.0.0.1 协议的行为。

警告

在版本之间更改此值将更改 IndexedDB、cookies 和本地存储的位置,您的应用程序将无法访问旧数据。

userAgent

stringnull

webview 的用户代理。

visible

boolean

窗口是否可见。

默认值: true

visibleOnAllWorkspaces

boolean

窗口是否应在所有工作区或虚拟桌面上可见。

平台特定
  • Windows / iOS / Android: 不支持。
width

number,格式化为 double

窗口宽度。

默认: 800

windowClassname

stringnull

在 Windows 上创建窗口时使用的窗口类的名称。**仅 Windows**。

windowEffects

WindowEffectsConfig | null

窗口效果。

需要窗口透明。

平台特定
x

numbernull,格式化为 double

窗口左上角的水平位置

y

numbernull,格式化为 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 无影响。

效果

WindowEffect[]

要应用到窗口的窗口效果的列表。冲突的效果将应用第一个并忽略其余的。

半径

numbernull,格式化为 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.01.1.5

此标志的默认值为 true

默认值: true

certificateThumbprint

stringnull

指定签名证书的 SHA1 哈希。

digestAlgorithm

stringnull

指定用于创建文件签名的文件摘要算法。代码签名所需。SHA-256 建议使用。

nsis

NsisConfig | null

使用 NSIS 生成的安装程序的配置。

signCommand

CustomSignCommandConfig | null

指定用于签名二进制的自定义命令。此命令需要在参数中有一个 %1,它只是一个用于二进制路径的占位符,我们将在调用命令之前检测和替换它。

默认情况下,我们使用 signtool.exe,该命令只能在Windows上找到,因此如果您在其他平台上进行交叉编译并签名,则需要使用其他工具,如 osslsigncode

timestampUrl

stringnull

用于时间戳的服务器。

tsp

boolean

是否使用时间戳协议(TSP,即RFC 3161)进行时间戳服务器。您的代码签名提供商可能使用TSP时间戳服务器,例如,SSL.com就是这样。如果是这样,通过将其设置为true来启用TSP。

webviewInstallMode

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

stringnull

用于安装用户界面横幅的位图文件路径。此位图将出现在除第一页之外的所有安装程序的顶部。

所需尺寸为 493px × 58px。

componentGroupRefs

字符串[]

您想要从片段中引用的ComponentGroup元素ID。

默认: []

componentRefs

字符串[]

您想要从片段中引用的Component元素ID。

默认: []

dialogImagePath

stringnull

用于安装用户界面对话框的位图文件路径。它用于欢迎和完成对话框。

所需尺寸为 493px × 312px。

enableElevatedUpdateTask

boolean

在Windows任务调度器中创建提升更新任务。

featureGroupRefs

字符串[]

您想要从片段中引用的FeatureGroup元素ID。

默认: []

featureRefs

字符串[]

您想要从片段中引用的Feature元素ID。

默认: []

fragmentPaths

字符串[]

具有WiX片段的.wxs文件路径列表。

默认: []

language

WixLanguage

要构建的安装程序语言。见 <https://docs.microsoft.com/en-us/windows/win32/msi/localizing-the-error-and-actiontext-tables>

默认: "en-US"

mergeRefs

字符串[]

您想要从片段中引用的Merge元素ID。

默认: []

模板

stringnull

要使用的自定义.wxs模板。

upgradeCode

string | null 格式化为 uuid

MSI安装程序的GUID升级代码。此代码 必须在所有更新中保持一致,否则,Windows将把您的更新视为不同的应用程序,您的用户将拥有您应用的重复版本。

默认情况下,Tauri通过在DNS命名空间中使用字符串 &lt;productName&gt;.exe.app.x64 生成Uuid v5来生成此代码。您可以使用Tauri的CLI为您生成和打印此代码,运行 tauri inspect wix-upgrade-code

建议您在您的Tauri配置文件中设置此值,以避免在更改产品名称时意外更改升级代码。

version

stringnull

格式为 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

stringnull

地区(.wxl)文件的路径。见 <https://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/build_a_localized_version.html>。


© 2025 Tauri 贡献者。CC-BY / MIT