跳至主要内容

对话框

用于打开和保存文件的本机系统对话框。

tauri.conf.json 中的 build.withGlobalTauri 设置为 true 时,也可以通过 window.__TAURI__.dialog 访问此软件包。

必须将 API 添加到 tauri.conf.json 中的 tauri.allowlist.dialog

{
"tauri": {
"allowlist": {
"dialog": {
"all": true, // enable all dialog APIs
"ask": true, // enable dialog ask API
"confirm": true, // enable dialog confirm API
"message": true, // enable dialog message API
"open": true, // enable file open API
"save": true // enable file save API
}
}
}
}

建议仅允许列出你使用的 API,以获得最佳的包大小和安全性。

接口

ConfirmDialogOptions

属性

cancelLabel

可选 cancelLabel: string

取消按钮的标签。

定义于: dialog.ts:112

okLabel

可选 okLabel: string

确认按钮的标签。

定义于: dialog.ts:110

title

可选 title: string

对话框的标题。默认为应用程序名称。

定义于: dialog.ts:106

type

可选 type: "info" | "warning" | "error"

对话框的类型。默认为 info

定义于: dialog.ts:108

DialogFilter

文件对话框的扩展过滤器。

: 1.0.0

属性

extensions

extensions: string[]

要过滤的扩展名,不带 . 前缀。

示例

extensions: ['svg', 'png']

定义于: dialog.ts:48

name

name: string

过滤器名称。

定义于: dialog.ts:40

MessageDialogOptions

: 1.0.0

属性

okLabel

可选 okLabel: string

确认按钮的标签。

定义于: dialog.ts:101

title

可选 title: string

对话框的标题。默认为应用程序名称。

定义于: dialog.ts:97

type

可选 type: "info" | "warning" | "error"

对话框的类型。默认为 info

定义于: dialog.ts:99

OpenDialogOptions

打开对话框的选项。

: 1.0.0

属性

defaultPath

可选 defaultPath: string

初始目录或文件路径。

定义于: dialog.ts:62

directory

可选 directory: boolean

对话框是否为目录选择。

定义于: dialog.ts:66

filters

可选 filters: DialogFilter[]

对话框的筛选器。

定义于: dialog.ts:60

multiple

可选 multiple: boolean

对话框是否允许多选。

定义于: dialog.ts:64

recursive

可选 recursive: boolean

如果 directory 为 true,表示稍后将递归读取。定义是否允许在范围内使用子目录。

定义于: dialog.ts:71

title

可选 title: string

对话框窗口的标题。

定义于: dialog.ts:58

SaveDialogOptions

保存对话框的选项。

: 1.0.0

属性

defaultPath

可选 defaultPath: string

初始目录或文件路径。如果它是一个目录路径,则对话框界面将更改为该文件夹。如果不是现有目录,则文件名将设置为对话框的文件名输入,并且对话框将设置为父文件夹。

定义于: dialog.ts:89

filters

可选 filters: DialogFilter[]

对话框的筛选器。

定义于: dialog.ts:83

title

可选 title: string

对话框窗口的标题。

定义于: dialog.ts:81

函数

ask

ask(message: string, options?: string | ConfirmDialogOptions): Promise<boolean>

显示一个带有 按钮的问题对话框。

示例

import { ask } from '@tauri-apps/api/dialog';
const yes = await ask('Are you sure?', 'Tauri');
const yes2 = await ask('This action cannot be reverted. Are you sure?', { title: 'Tauri', type: 'warning' });

: 1.0.0

参数

名称类型描述
message字符串要显示的消息。
options?字符串 | ConfirmDialogOptions对话框的选项。如果是字符串,则表示对话框标题。

返回: Promise<布尔值>

一个解析为布尔值的 Promise,指示是否单击了

confirm

confirm(message: 字符串, options?: 字符串 | ConfirmDialogOptions): Promise<布尔值>

显示一个带有 确定取消 按钮的问题对话框。

示例

import { confirm } from '@tauri-apps/api/dialog';
const confirmed = await confirm('Are you sure?', 'Tauri');
const confirmed2 = await confirm('This action cannot be reverted. Are you sure?', { title: 'Tauri', type: 'warning' });

: 1.0.0

参数

名称类型描述
message字符串要显示的消息。
options?字符串 | ConfirmDialogOptions对话框的选项。如果是字符串,则表示对话框标题。

返回: Promise<布尔值>

一个解析为布尔值的 Promise,指示是否单击了 确定

message

message(message: 字符串, options?: 字符串 | MessageDialogOptions): Promise<void>

显示一个带有 确定 按钮的消息对话框。

示例

import { message } from '@tauri-apps/api/dialog';
await message('Tauri is awesome', 'Tauri');
await message('File not found', { title: 'Tauri', type: 'error' });

: 1.0.0

参数

名称类型描述
message字符串要显示的消息。
options?字符串 | MessageDialogOptions对话框的选项。如果是字符串,则表示对话框标题。

返回: Promise<void>

一个指示操作成功或失败的 Promise。

open

open(options?: OpenDialogOptions): Promise<null | 字符串 | 字符串[]>

打开文件/目录选择对话框。

选定的路径被添加到文件系统和资产协议允许列表范围。当安全性比此 API 的易用性更重要时,最好编写一个专门的命令。

请注意,允许列表范围更改不会持久化,因此在重新启动应用程序时这些值会被清除。你可以使用 tauri-plugin-persisted-scope 将其保存到文件系统中。

示例

import { open } from '@tauri-apps/api/dialog';
// Open a selection dialog for image files
const selected = await open({
multiple: true,
filters: [{
name: 'Image',
extensions: ['png', 'jpeg']
}]
});
if (Array.isArray(selected)) {
// user selected multiple files
} else if (selected === null) {
// user cancelled the selection
} else {
// user selected a single file
}

示例

import { open } from '@tauri-apps/api/dialog';
import { appDir } from '@tauri-apps/api/path';
// Open a selection dialog for directories
const selected = await open({
directory: true,
multiple: true,
defaultPath: await appDir(),
});
if (Array.isArray(selected)) {
// user selected multiple directories
} else if (selected === null) {
// user cancelled the selection
} else {
// user selected a single directory
}

: 1.0.0

参数

名称类型
选项OpenDialogOptions

返回:Promise<null | string | string[]>

解析为所选路径的 Promise

save

save(options?: SaveDialogOptions): Promise<string | null>

打开文件/目录保存对话框。

所选路径将被添加到文件系统和资产协议允许列表范围。当安全性比此 API 的易用性更重要时,最好编写一个专门的命令。

请注意,允许列表范围更改不会持久化,因此在重新启动应用程序时这些值会被清除。你可以使用 tauri-plugin-persisted-scope 将其保存到文件系统中。

示例

import { save } from '@tauri-apps/api/dialog';
const filePath = await save({
filters: [{
name: 'Image',
extensions: ['png', 'jpeg']
}]
});

: 1.0.0

参数

名称类型
选项SaveDialogOptions

返回:Promise<string | null>

解析为所选路径的 Promise。