Tauri v2中调用@tauri-apps/plugin-dialog的open函数时提示‘plugin dialog not found’错误的求助
Tauri v2中调用@tauri-apps/plugin-dialog的open函数时提示‘plugin dialog not found’错误的求助
嘿,看了你的问题和代码,发现你遇到的这个错误核心原因是Dialog插件没有在Rust后端正确注册,我给你梳理下一步步解决的方法:
第一步:在Rust后端注册Dialog插件
你的lib.rs里只初始化了opener插件,完全没添加Dialog插件的注册逻辑,这是最关键的问题!修改run函数,把Dialog插件加进去:#[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { tauri::Builder::default() .plugin(tauri_plugin_opener::init()) // 新增这一行,注册Dialog插件 .plugin(tauri_plugin_dialog::init()) .invoke_handler(tauri::generate_handler![test, process_excel_command]) .run(tauri::generate_context!()) .expect("error while running tauri application"); }第二步:确认前端依赖已正确安装
确保你已经在React项目里安装了对应的前端插件包,如果没装的话,执行下面的命令:npm install @tauri-apps/plugin-dialog # 如果你用yarn或pnpm的话 yarn add @tauri-apps/plugin-dialog pnpm add @tauri-apps/plugin-dialog第三步:简化tauri.conf.json的配置
你的配置里同时写了plugins.dialog和嵌套的plugins.allowlist.dialog,其实Tauri v2里插件的权限配置直接放在plugins.dialog下就足够了,不需要重复嵌套,简化后的配置如下:"plugins": { "dialog": { "all": true } },另外你把
app.security.csp设为null暂时没问题,不过后续如果要做生产环境配置,建议加上对应的CSP规则,现在先以解决问题为主。最后:重启开发服务器
修改了Rust代码和配置文件后,一定要完全停止当前的Tauri开发服务(比如关掉npm run tauri dev的终端窗口),然后重新启动服务,不然修改不会生效。
做完这些步骤后,再调用open()函数应该就不会报错了。另外提个小建议:如果你是要选择目录的话,记得给open()传directory: true的参数,比如:
const selected = await open({ directory: true });
这样打开的就是目录选择对话框,而不是默认的文件选择框。
内容来源于stack exchange
相关产品推荐
相关产品推荐

