对话框
用于打开和保存文件以及消息对话框的原生系统对话框。
此插件需要 Rust 版本至少为 **1.77.2**
平台 | 级别 | 备注 |
---|---|---|
Windows | ||
Linux | ||
macOS | ||
Android | | 不支持文件夹选择器 |
iOS | | 不支持文件夹选择器 |
安装对话框插件即可开始使用。
使用你的项目包管理器添加依赖项
npm run tauri add dialog
yarn run tauri add dialog
pnpm tauri add dialog
deno task tauri add dialog
bun tauri add dialog
cargo tauri add dialog
-
在
src-tauri
文件夹中运行以下命令,将插件添加到项目的Cargo.toml
依赖项中cargo add tauri-plugin-dialog -
修改
lib.rs
以初始化插件src-tauri/src/lib.rs #[cfg_attr(mobile, tauri::mobile_entry_point)]pub fn run() {tauri::Builder::default().plugin(tauri_plugin_dialog::init()).run(tauri::generate_context!()).expect("error while running tauri application");} -
如果您想在 JavaScript 中创建对话框,也请安装 npm 包。
npm install @tauri-apps/plugin-dialogyarn add @tauri-apps/plugin-dialogpnpm add @tauri-apps/plugin-dialogdeno add npm:@tauri-apps/plugin-dialogbun add @tauri-apps/plugin-dialog
对话框插件在 JavaScript 和 Rust 中均可用。以下是如何使用它的方法:
在 JavaScript 中
在 Rust 中
请参阅 JavaScript API 参考中的所有对话框选项。
显示带有“是”和“否”按钮的问题对话框。
import { ask } from '@tauri-apps/plugin-dialog';// when using `"withGlobalTauri": true`, you may use// const { ask } = window.__TAURI__.dialog;
// Create a Yes/No dialogconst answer = await ask('This action cannot be reverted. Are you sure?', { title: 'Tauri', kind: 'warning',});
console.log(answer);// Prints boolean to the console
显示带有“确定”和“取消”按钮的问题对话框。
import { confirm } from '@tauri-apps/plugin-dialog';// when using `"withGlobalTauri": true`, you may use// const { confirm } = window.__TAURI__.dialog;
// Creates a confirmation Ok/Cancel dialogconst confirmation = await confirm( 'This action cannot be reverted. Are you sure?', { title: 'Tauri', kind: 'warning' });
console.log(confirmation);// Prints boolean to the console
显示带有“确定”按钮的消息对话框。请注意,如果用户关闭对话框,它将返回false
。
import { message } from '@tauri-apps/plugin-dialog';// when using `"withGlobalTauri": true`, you may use// const { message } = window.__TAURI__.dialog;
// Shows messageawait message('File not found', { title: 'Tauri', kind: 'error' });
打开文件/目录选择对话框。
multiple
选项控制对话框是否允许多选,而 directory
选项控制是否是目录选择。
import { open } from '@tauri-apps/plugin-dialog';// when using `"withGlobalTauri": true`, you may use// const { open } = window.__TAURI__.dialog;
// Open a dialogconst file = await open({ multiple: false, directory: false,});console.log(file);// Prints file path or URI
打开文件/目录保存对话框。
import { save } from '@tauri-apps/plugin-dialog';// when using `"withGlobalTauri": true`, you may use// const { save } = window.__TAURI__.dialog;
// Prompt to save a 'My Filter' with extension .png or .jpegconst path = await save({ filters: [ { name: 'My Filter', extensions: ['png', 'jpeg'], }, ],});console.log(path);// Prints the chosen path
请参阅Rust API 参考,了解所有可用选项。
显示带有 Absolutely
和 Totally
按钮的问题对话框。
use tauri_plugin_dialog::{DialogExt, MessageDialogButtons};
let answer = app.dialog() .message("Tauri is Awesome") .title("Tauri is Awesome") .buttons(MessageDialogButtons::OkCancelCustom("Absolutely", "Totally")) .blocking_show();
如果您需要非阻塞操作,可以使用 show()
代替。
use tauri_plugin_dialog::{DialogExt, MessageDialogButtons};
app.dialog() .message("Tauri is Awesome") .title("Tauri is Awesome") .buttons(MessageDialogButtons::OkCancelCustom("Absolutely", "Totally")) .show(|result| match result { true => // do something, false =>// do something, });
显示带有“确定”按钮的消息对话框。请注意,如果用户关闭对话框,它将返回false
。
use tauri_plugin_dialog::{DialogExt, MessageDialogKind};
let ans = app.dialog() .message("File not found") .kind(MessageDialogKind::Error) .title("Warning") .blocking_show();
如果您需要非阻塞操作,可以使用 show()
代替。
use tauri_plugin_dialog::{DialogExt, MessageDialogButtons, MessageDialogKind};
app.dialog() .message("Tauri is Awesome") .kind(MessageDialogKind::Info) .title("Information") .buttons(MessageDialogButtons::OkCustom("Absolutely")) .show(|result| match result { true => // do something, false => // do something, });
use tauri_plugin_dialog::DialogExt;
let file_path = app.dialog().file().blocking_pick_file();// return a file_path `Option`, or `None` if the user closes the dialog
如果您需要非阻塞操作,可以使用 pick_file()
代替
use tauri_plugin_dialog::DialogExt;
app.dialog().file().pick_file(|file_path| { // return a file_path `Option`, or `None` if the user closes the dialog })
use tauri_plugin_dialog::DialogExt;
let file_path = app .dialog() .file() .add_filter("My Filter", &["png", "jpeg"]) .blocking_save_file(); // do something with the optional file path here // the file path is `None` if the user closed the dialog
或者,也可以
use tauri_plugin_dialog::DialogExt;
app.dialog() .file() .add_filter("My Filter", &["png", "jpeg"]) .pick_file(|file_path| { // return a file_path `Option`, or `None` if the user closes the dialog });
默认权限
此权限集配置了对话框插件可用的对话框类型。
已授予权限
所有对话框类型都已启用。
此默认权限集包括以下内容
允许询问
允许确认
允许消息
允许保存
允许打开
权限表
标识符 | 描述 |
---|---|
|
启用询问命令,不带任何预配置范围。 |
|
禁用询问命令,不带任何预配置范围。 |
|
启用确认命令,不带任何预配置范围。 |
|
禁用确认命令,不带任何预配置范围。 |
|
启用消息命令,不带任何预配置范围。 |
|
禁用消息命令,不带任何预配置范围。 |
|
启用打开命令,不带任何预配置范围。 |
|
禁用打开命令,不带任何预配置范围。 |
|
启用保存命令,不带任何预配置范围。 |
|
禁用保存命令,不带任何预配置范围。 |
© 2025 Tauri 贡献者。CC-BY / MIT