dialog
系统对话框-用于打开和保存文件
如果在 tauri.conf.json 文件中把 build.withGlobalTauri 设置为true,则也可通过window.__ TAURI __ .dialog访问。
以下函数必须添加到 tauri.conf.json 文件中的 tauri.allowlist.dialog 里
{
"tauri": {
"allowlist": {
"dialog": {
"all": true, // dialog下的所有函数都可以用
"open": true,
"save": true
}
}
}
}
不建议用all,最好把所用的列出来,可以减少包的大小以及提高安全性。
对象
MessageDialogOptions
| 属性名 | 类型 | 说明 | 可选值 | 默认值 |
|---|---|---|---|---|
| title | string | 对话框的标题 | -- | 应用程序名称 |
| type | string | 对话框的类型 | info/warning/error | info |
DialogFilter
文件对话框的扩展名过滤器
| 属性名 | 类型 | 说明 | 可选值 | 默认值 |
|---|---|---|---|---|
| extensions | string[] | 过滤器,不带 . | -- | -- |
| name | string | 过滤器名称 | -- | -- |
例:
extensions: ['svg', 'png']
OpenDialogOptions
打开对话框的选项
| 属性名 | 类型 | 说明 | 可选值 | 默认值 |
|---|---|---|---|---|
| defaultPath | string | 初始目录或文件路径 | -- | -- |
| directory | boolean | 对话框是否为目录选择 | -- | -- |
| filters | DialogFilter[] | 对话框过滤器 | -- | -- |
| multiple | boolean | 对话框是否允许多选 | -- | -- |
| recursive | boolean | 如果directory为true,是否递归读取该目录 | -- | -- |
| title | string | 对话框窗口的标题 | -- | -- |
SaveDialogOptions
保存对话框的选项
| 属性名 | 类型 | 说明 | 可选值 | 默认值 |
|---|---|---|---|---|
| defaultPath | string | 初始目录或文件路径 | -- | -- |
| filters | DialogFilter[] | 对话框过滤器 | -- | -- |
| title | string | 对话框窗口的标题 | -- | -- |
函数
ask
ask(message: string, options?:string | MessageDialogOptions): Promise < boolean >
显示一个带有“是”和“否”按钮的问题对话框
参数
| 参数名 | 类型 | 描述 |
|---|---|---|
| message | string | 要显示的信息 |
| options | string | MessageDialogOptions | 配置项。如果是字符串,则表示对话框标题。 |
版本:1.0.0
confirm
confirm(message: string, options?:string | MessageDialogOptions): Promise < boolean >
显示一个带有“确定”和“取消”按钮的问题对话框
参数:同上
版本:1.0.0
message
message(message: string, options?:string | MessageDialogOptions): Promise < void >
显示一个带有“确定”按钮的消息对话框
参数:同上
版本:1.0.0
open
open(options?:string | OpenDialogOptions): Promise < null | string | string[] >
打开文件/目录选择对话框
例:
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 {
// 用户选择单个文件
}