跳到内容
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": "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

AppConfig

App 配置。

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

string

反向域名表示法中的应用程序标识符(例如 com.tauri.example)。此字符串在应用程序之间必须是唯一的,因为它用于系统配置,如捆绑 ID 和 webview 数据目录的路径。此字符串必须仅包含字母数字字符(A-Z、a-z 和 0-9)、连字符 (-) 和句点 (.)。

mainBinaryName

string | null

App 主二进制文件名。默认为您的 cargo crate 的名称。

plugins

PluginConfig

插件配置。

默认值: {}

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

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

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

FsScope

资产协议的访问作用域。

默认值: []

AssociationExt

string

[FileAssociation] 的扩展。

前导 . 会自动去除。

BackgroundThrottlingPolicy

以下之一:

  • "disabled" 禁用后台节流的策略
  • "suspend" Webview 不在窗口中时完全暂停任务的策略。这通常是在未设置策略情况下的默认行为。
  • "throttle" Webview 不在窗口中时限制处理,但不会完全暂停任务的策略。

后台节流策略。

BeforeDevCommand

以下任一项:

  • string 使用默认选项运行给定脚本。
  • 使用自定义选项运行给定脚本。对象属性:- cwd - script (必需) - 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。

这通常是开发服务器的 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

AndroidConfig

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。

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

支持的捆绑目标:debrpmnsismsi

icon

string[]

应用程序的图标

默认值: []

iOS

IosConfig

iOS 配置。

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

string | null

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

licenseFile

string | null

要包含在相应捆绑包中的许可证文件的路径。

linux

LinuxConfig

Linux 捆绑包的配置。

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

string | null

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

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

string | null

应用程序的发布者。默认为标识符字符串中的第二个元素。

当前映射到 Windows Installer 的 Manufacturer 属性和 debian 软件包的 Maintainer 字段(如果 Cargo.toml 没有 authors 字段)。

resources

BundleResources | null

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

shortDescription

string | null

您的应用程序的简短描述。

targets

BundleTarget

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

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" 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 ##### blue integer 格式为 uint8 ##### green integer 格式为 uint8 ##### red integer 格式为 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” 将被替换为要签名的二进制文件的路径。##### cmd string 运行以签名二进制文件的命令。

自定义签名命令配置。

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 模板的路径。

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

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。目前可识别的优先级为:requiredimportantstandardoptionalextra

提供

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>

对象属性:

  • 应用程序文件夹位置
  • 应用程序位置
  • 背景
  • 窗口位置
  • 窗口大小
应用程序文件夹位置

Position

窗口上应用程序文件夹的位置。

默认
{
"x": 480,
"y": 170
}
应用程序位置

Position

窗口上应用程序文件的位置。

默认
{
"x": 180,
"y": 170
}
背景

string | null

用作 dmg 文件背景的图像。接受的格式:png/jpg/gif

窗口位置

Position | null

屏幕上卷窗口的位置。

窗口大小

Size

卷窗口的大小。

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

FileAssociation

文件关联

对象属性:

  • 描述
  • ext (必需)
  • mimeType
  • 名称
  • 角色
描述

string | null

关联描述。仅限 Windows。它显示在 Windows 资源管理器的“类型”列中。

ext

AssociationExt[]

要与此应用程序关联的文件扩展名。例如 “png”

mimeType

string | null

mime 类型,例如 “image/png” 或 “text/plain”。仅限 Linux。

名称

string | null

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

角色

BundleTypeRole

应用程序在类型方面的角色。映射到 macOS 上的 CFBundleTypeRole

默认值: "Editor"

FrontendDist

以下任一项:

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

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

FsScope

以下任一项:

  • string[] 此作用域允许的路径列表。
  • 完整的作用域配置。对象属性:- allow - deny - requireLiteralLeadingDot ##### allow string[] 此作用域允许的路径列表。默认值: [] ##### deny 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 函数发送的每个响应中设置。Content-Security-Policy 标头是单独定义的,因为它也是单独处理的。

对于 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\&lt;String\&gt;(Rust):项由 ”, ” 连接以形成生成的标头值
  • Object(JS)/ Hashmap\&lt;String,String\&gt;(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 当前工作目录。##### script string 要执行的脚本。

描述在触发 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

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

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

NsisCompression

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

请参阅 <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

用作安装程序图标的图标文件的路径。

安装模式

NSISInstallerMode

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

默认值: "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\&lt;your-app&gt;.lnk
  • 如果未设置,快捷方式将放置在 %AppData%\Microsoft\Windows\Start Menu\Programs\&lt;your-app&gt;.lnk
模板

string | null

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

NSISInstallerMode

以下之一:

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

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 定义作用域允许的数据。##### deny Value[] | null 定义作用域拒绝的数据。验证逻辑应优先考虑此项。##### identifier Identifier 权限或权限集的标识符。

[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 模板的路径。

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

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
  • 冻结原型
  • 标头
  • 模式
资产协议

AssetProtocolConfig

自定义协议配置。

默认
{
"enable": false,
"scope": []
}
能力

CapabilityEntry[]

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

如果列表为空,则包含所有能力。

默认值: []

csp

Csp | null

将在构建的应用程序的所有 HTML 文件中注入的 Content Security Policy。如果未指定 dev_csp,则此值也会在开发环境中注入。

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

dangerousDisableAssetCspModification

DisabledCspModificationKind

禁用 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 消息和错误响应

模式

PatternKind

要使用的模式。

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

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。必须使用 httphttps 方案。
  • 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 进程安装浏览器扩展

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

将与此标签关联的窗口设置为要创建的窗口的父窗口。

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

TitleBarStyle

macOS 标题栏的样式。

默认值"Visible"

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

注意

当尝试获取 http 端点时,使用 https 方案将不允许混合内容,因此将与 macOS 和 Linux 上使用的 &lt;scheme&gt;://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

窗口效果。

需要窗口是透明的。

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

WindowEffect[]

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

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.01.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

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

WixLanguage

要构建的安装程序语言。请参阅 <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 通过使用字符串 &lt;productName&gt;.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