跳到正文
灵动桌面框架
Esc
本栏目菜单

插件概览

灵动桌面框架集成了 6 个 Tauri 官方插件,均已在 lib.rs 注册、在 capabilities/default.json 授权,开箱即用。

已集成插件

插件用途说明
Single Instance禁止多开纯 Rust 侧,无前端 API;重复启动时唤回已运行的窗口
Store键值持久化存储已注册,模板前端暂未调用(配置项走 SQLite)
Log日志系统输出到控制台 + 日志文件;开发 Info / 生产 Warn
Updater应用自动更新设置页「检查更新」→ 下载安装 → 重启
Opener打开 URL/文件调用系统默认程序,模板前端暂未调用
Process进程管理重启、退出应用(更新完成后重启即用它)

对应的依赖:

插件Rust crate(src-tauri/Cargo.toml)前端包(package.json)权限(capabilities/default.json)
Single Instancetauri-plugin-single-instance无无需
Storetauri-plugin-store@tauri-apps/plugin-storestore:default
Logtauri-plugin-log@tauri-apps/plugin-loglog:default
Updatertauri-plugin-updater@tauri-apps/plugin-updaterupdater:default
Openertauri-plugin-opener@tauri-apps/plugin-openeropener:default
Processtauri-plugin-process@tauri-apps/plugin-processprocess:default

插件注册

所有插件在 src-tauri/src/lib.rs 中统一注册:

tauri::Builder::default()
    // 禁止多开(必须是第一个注册的插件)
    .plugin(tauri_plugin_single_instance::init(|app, _argv, _cwd| {
        services::main_window_placement::show_main(app, "二次启动");
    }))
    .plugin(tauri_plugin_opener::init())
    .plugin(tauri_plugin_store::Builder::default().build())
    .plugin(
        tauri_plugin_log::Builder::default()
            // 开发环境日志更详细,生产环境只记录 Warn 及以上
            .level(if cfg!(debug_assertions) {
                log::LevelFilter::Info
            } else {
                log::LevelFilter::Warn
            })
            .build(),
    )
    .plugin(tauri_plugin_updater::Builder::new().build())
    .plugin(tauri_plugin_process::init())

禁止多开

Single Instance 以 identifier 作为实例锁:第二个实例启动后立即退出,回调在已运行的实例里执行——还原并显示主窗口(关闭按钮是隐藏到托盘,窗口很可能处于隐藏态)、抢焦点,并把窗口纠回用户上次所在的显示器。

pnpm tauri:dev 启动的开发版会合并 tauri.conf.dev.json,其 identifier 是 com.agilefr.tauri.dev,与正式版 com.agilefr.tauri 不同,所以 dev 与正式版可以同时各开一个,互不阻塞。

添加新插件

  1. 安装 Rust crate 和前端包
  2. 在 lib.rs 中注册插件
  3. 在 capabilities/default.json 中添加权限
  4. 在前端使用插件 API