dialog
用于打开和保存文件的本地系统对话框。
当 tauri.conf.json 中的 build.withGlobalTauri 设置为 true 时,也可以通过 window.__TAURI__.dialog 访问此软件包。
API 必须添加到 tauri.conf.json 中的 tauri.allowlist.dialog 中:
{
"tauri": {
"allowlist": {
"dialog": {
"all": true, // 启用所有对话框API
"ask": true, // 启用询问对话框API
"confirm": true, // 启用确认对话框API
"message": true, // 启用信息对话框API
"open": true, // 启用文件打开对话框API
"save": true // 启用文件保存对话框API
}
}
}
}
建议只允许列出您使用的 API,以优化程序包的大小和安全性。
接口
ConfirmDialogOptions(确认对话框选项)
属性
cancelLabel
OptionalcancelLabel:string
取消按钮标签。
定义在: dialog.ts:112
okLabel
OptionalokLabel:string
确认按钮标签。
定义在: dialog.ts:110
title
Optionaltitle:string
对话框的标题。默认为应用程序名称。
定义在: dialog.ts:106
type
Optionaltype:"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
OptionalokLabel:string
确认按钮标签。
定义在: dialog.ts:101
title
Optionaltitle:string
对话框的标题。默认为应用程序名称。
定义在: dialog.ts:97
type
Optionaltype:"info"|"warning"|"error"
对话框的类型。默认为info。
定义在: dialog.ts:99
OpenDialogOptions(打开对话框选项)
打开对话框的选项。
自1.0.0版本起
属性
defaultPath
OptionaldefaultPath:string
初始目录或文件路径。
定义在: dialog.ts:62
directory
Optionaldirectory:boolean
对话框是否选择目录。
定义在: dialog.ts:66
filters
Optionalfilters:DialogFilter[]
对话框的过滤器。
定义在: dialog.ts:60
multiple
Optionalmultiple:boolean
对话框是否允许多选。
Defined in: dialog.ts:64
recursive
Optionalrecursive:boolean
如果directory为 true,表示以后将递归读取。定义是否允许在作用域中使用子目录。
定义在: dialog.ts:71
title
Optionaltitle:string
对话窗口的标题。
定义在: dialog.ts:58
SaveDialogOptions(保存对话框选项)
保存对话框选项
自1.0.0版本起
属性
defaultPath
OptionaldefaultPath:string
初始目录或文件路径。如果是目录路径,对话框界面将更改为该文件夹。如果不是现有目录,文件名将设置为对话框的文件名输入,对话框将设置为父文件夹。
定义在: dialog.ts:89
filters
Optionalfilters:DialogFilter[]
对话框的过滤器。
定义在: dialog.ts:83
title
Optionaltitle:string
对话窗口的标题。
定义在: dialog.ts:81
方法
ask
ask(
message:string,options?:string|ConfirmDialogOptions):Promise<boolean>
显示带有Yes和No按钮的问题对话框。
示例
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 |
string |
要显示的信息。 |
options? |
string | ConfirmDialogOptions |
对话框的选项。如果是字符串,则表示对话框标题。 |
返回值: Promise<boolean>
一个返回布尔值的promise,表示是否点击了Yes
confirm
confirm(
message:string,options?:string|ConfirmDialogOptions):Promise<boolean>
显示带 "确定 "和 "取消 "按钮的问题对话框。
示例
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 |
string |
要显示的信息。 |
options? |
string | ConfirmDialogOptions |
对话框的选项。如果是字符串,则表示对话框标题。 |
返回值: Promise<boolean>
一个返回布尔值的promise,表示是否点击了"确认"
message
message(
message:string,options?:string|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 |
string |
要显示的信息。 |
options? |
string | MessageDialogOptions |
对话框的选项。如果是字符串,则表示对话框标题。 |
返回值: Promise<void>
表示操作成功或失败的promise。
open
open(
options?:OpenDialogOptions):Promise<null|string|string[]>
打开文件/目录选择对话框。
所选路径会添加到文件系统和资产协议允许列表范围中。当安全性比该 API 的易用性更重要时,最好编写专用命令。
请注意,allowlist 范围的更改不会被持久化,因此在重新启动应用程序时,值会被清除。你可以使用 tauri-plugin-persisted-scope 将其保存到文件系统中。
示例
import { open } from '@tauri-apps/api/dialog';
// 打开图片文件选择对话框
const selected = await open({
multiple: true,
filters: [{
name: 'Image',
extensions: ['png', 'jpeg']
}]
});
if (Array.isArray(selected)) {
// 用户选择了多个文件
} else if (selected === null) {
// 用户取消了选择
} else {
// 用户选择了一个文件
}
示例
import { open } from '@tauri-apps/api/dialog';
import { appDir } from '@tauri-apps/api/path';
// 打开目录选择对话框
const selected = await open({
directory: true,
multiple: true,
defaultPath: await appDir(),
});
if (Array.isArray(selected)) {
// 用户选择了多个目录
} else if (selected === null) {
// 用户取消了选择
} else {
// 用户选择了一个目录
}
自1.0.0版本起
参数
| 名称 | 类型 |
|---|---|
options |
OpenDialogOptions |
返回值: Promise<null | string | string[]>
Promise返回的是所选路径
save
save(
options?:SaveDialogOptions):Promise<string|null>
打开文件/目录保存对话框。
所选路径会添加到文件系统和资源协议允许列表范围中。当安全性比该 API 的易用性更重要时,请编写专用命令。
请注意,allowlist 范围的更改不会被持久化,因此在重新启动应用程序时,值会被清除。你可以使用 tauri-plugin-persisted-scope 将其保存到文件系统中。
示例
import { save } from '@tauri-apps/api/dialog';
const filePath = await save({
filters: [{
name: 'Image',
extensions: ['png', 'jpeg']
}]
});
自1.0.0版本起
参数
| 名称 | 类型 |
|---|---|
options |
SaveDialogOptions |
返回值: Promise<string | null>
promise返回的是所选路径