You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 07:53:04