对话框
用于打开和保存文件的原生系统对话框。
当 `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:字符串
取消按钮的标签。
定义于: dialog.ts:112
okLabel
可选
okLabel:字符串
确认按钮的标签。
定义于: dialog.ts:110
title
可选
title:字符串
对话框的标题。默认为应用名称。
定义于: dialog.ts:106
type
可选
type:"info"
|"warning"
|"error"
对话框的类型。默认为 info
。
定义于: dialog.ts:108
DialogFilter
文件对话框的扩展名过滤器。
自: 1.0.0
属性
extensions
extensions:
字符串
[]
要过滤的扩展名,无需 .
前缀。
示例
extensions: ['svg', 'png']
定义于: dialog.ts:48
name
name:
字符串
过滤器名称。
定义于: dialog.ts:40
MessageDialogOptions
自: 1.0.0
属性
okLabel
可选
okLabel:字符串
确认按钮的标签。
定义于: dialog.ts:101
title
可选
title:字符串
对话框的标题。默认为应用名称。
定义于: dialog.ts:97
type
可选
type:"info"
|"warning"
|"error"
对话框的类型。默认为 info
。
定义于: dialog.ts:99
OpenDialogOptions
打开对话框的选项。
自: 1.0.0
属性
defaultPath
可选
defaultPath:字符串
初始目录或文件路径。
定义于: dialog.ts:62
directory
可选
directory:布尔值
对话框是否为目录选择对话框。
定义于: dialog.ts:66
filters
可选
filters:DialogFilter
[]
对话框的过滤器。
定义于: dialog.ts:60
multiple
可选
multiple:布尔值
对话框是否允许多选。
定义于: dialog.ts:64
recursive
可选
recursive:布尔值
如果 directory
为 true,则表示稍后将递归读取。定义是否允许子目录。
定义于: dialog.ts:71
title
可选
title:字符串
对话框窗口的标题。
定义于: dialog.ts:58
SaveDialogOptions
保存对话框的选项。
自: 1.0.0
属性
defaultPath
可选
defaultPath:字符串
初始目录或文件路径。如果它是目录路径,则对话框界面将更改为该文件夹。如果它不是现有目录,则文件名将设置为对话框的文件名输入,并且对话框将设置为父文件夹。
定义于: dialog.ts:89
filters
可选
filters:DialogFilter
[]
对话框的过滤器。
定义于: dialog.ts:83
title
可选
title:字符串
对话框窗口的标题。
定义于: dialog.ts:81
函数
ask
ask(
message
:字符串
,options?
:字符串
|ConfirmDialogOptions
):Promise
<布尔值
>
显示带有“是”和“否”按钮的问题对话框。
示例
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
参数
名称 | 类型 |
---|---|
options | OpenDialogOptions |
返回: Promise
<null
| 字符串
| 字符串
[]>
一个解析为所选路径的 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
参数
名称 | 类型 |
---|---|
options | SaveDialogOptions |
返回: Promise
<string
>| null
>
解析为所选路径的 Promise。