[bug] After upgrading to 2.0, config.get_hotkeys not allowed. Plugin not found appears
TheBlindM opened this issue · 4 comments
Describe the bug
--------------------config_plugin.rs------------------------
#[tauri::command]
async fn get_hotkeys(query_id: Option<String>) -> CmdResult<HashMap<String, Vec<String>>> {
return Ok(wrap_err!(
config_service::get_hotkeys_like_id(query_id).await
)?);
}
pub fn init<R: Runtime>() -> TauriPlugin<R> {
Builder::new("config")
.invoke_handler(tauri::generate_handler![
get_hotkeys
])
.build()
}
----------------------main.rs-----------------
fn main() -> std::io::Result<()> {
#[allow(unused_mut)]
tauri::Builder::default()
.plugin(tauri_plugin_updater::Builder::new().build())
.plugin(tauri_plugin_clipboard_manager::init())
.plugin(tauri_plugin_os::init())
.plugin(tauri_plugin_process::init())
.plugin(tauri_plugin_dialog::init())
.plugin(tauri_plugin_fs::init())
.plugin(tauri_plugin_shell::init())
.setup(|app| {
tauri::async_runtime::block_on(async move {
// 获取应用数据目录
handle::Handle::global().init(app.app_handle());
let _ = dirs::init_portable_flag();
let app_dir = dirs::app_home_dir().unwrap();
if !app_dir.exists() {
let _ = fs::create_dir_all(&app_dir);
}
log_err!(init::init_log());
let connection = Database::connect(format!(
"sqlite:{}\\local.db?mode=rwc",
app_dir.to_str().unwrap()
))
.await
.unwrap();
// 设置 LIKE 为区分大小写
let stmt =
Statement::from_string(DbBackend::Sqlite, "PRAGMA case_sensitive_like=ON");
connection.query_one(stmt).await.unwrap(); // Where dbh is type DatabaseConnection
Migrator::up(&connection, None).await.unwrap();
CONTEXT.lock().await.db = connection;
log_err!(config_service::init().await);
});
Ok(())
})
.plugin(tauri_plugin_single_instance::init(|app, _argv, _cwd| {
//设置插件
// let window = app.get_window("main").unwrap(); //二次打开软件时,显示已打开窗口,单例运行app
// window.set_focus().unwrap();
// window.show().unwrap();
let windows = app.webview_windows();
windows
.values()
.next()
.expect("Sorry, no window found")
.set_focus()
.expect("Can't Bring Window to Focus");
}))
.plugin(group_plugin::init())
.plugin(terminal_plugin::init())
.plugin(local_terminal_plugin::init())
.plugin(shortcut_cmd_plugin::init())
.plugin(config_plugin::init())
.plugin(system_plugin::init())
.plugin(utils_plugin::init())
.plugin(login_credentials_plugin::init())
.plugin(server_plugin::init())
.plugin(sftp_plugin::init())
.plugin(env_var_plugin::init())
.plugin(cmd_prompt_plugin::init())
.plugin(history_cmd_plugin::init())
.manage(ShellManager::default())
.manage(SftpManager::default())
.build(tauri::generate_context!())
.expect("err building")
.run(move |_handle, event| match event {
tauri::RunEvent::Ready => {
println!("程序;启动");
}
tauri::RunEvent::Exit => {
println!("程序退出")
}
_ => (),
});
tauri::async_runtime::block_on(async move {
let _ = CONTEXT.lock().await.db.clone().close();
});
Ok(())
}
------------------------------------js--------------------------------
export const getHotkeys = async (queryId: any) => {
return invoke('plugin:config|get_hotkeys', { queryId });
};
Reproduction
No response
Expected behavior
No response
Full tauri info
output
cargo tauri info
[✔] Environment
- OS: Windows 10.0.19045 x86_64 (X64)
✔ WebView2: 129.0.2792.89
✔ MSVC: Visual Studio Community 2022
✔ rustc: 1.79.0 (129f3b996 2024-06-10)
✔ cargo: 1.79.0 (ffa9cf99a 2024-06-03)
✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
✔ Rust toolchain: 1.79.0-x86_64-pc-windows-msvc (environment override by RUSTUP_TOOLCHAIN)
- node: 18.17.1
- pnpm: 8.8.0
- yarn: 1.22.19
- npm: 9.6.7
[-] Packages
- tauri 🦀: 2.0.6
- tauri-build 🦀: 2.0.2
- wry 🦀: 0.46.3
- tao 🦀: 0.30.3
- tauri-cli 🦀: 2.0.4
[-] Plugins
- tauri-plugin-fs 🦀: 2.0.3
- tauri-plugin-single-instance 🦀: 2.0.1
- tauri-plugin-os 🦀: 2.0.1
- tauri-plugin-dialog 🦀: 2.0.3
- tauri-plugin-process 🦀: 2.0.1
- tauri-plugin-shell 🦀: 2.0.2
- tauri-plugin-updater 🦀: 2.0.2
[-] App
- build-type: bundle
- CSP: unset
- frontendDist: ../dist
- devUrl: http://localhost:3201/
Stack trace
Uncaught (in promise) config.get_hotkeys not allowed. Plugin not found
Additional context
No response
I think we forgot to update the documentation for inlined plugins, please see #10075 which kinda have the steps to include inlined plugins
I think we forgot to update the documentation for inlined plugins, please see #10075 which kinda have the steps to include inlined plugins
sorry, I didn't understand how he operated it
see this
tauri/examples/api/src-tauri/build.rs
Lines 12 to 15 in 8e083c9
build.rs
I will update the documentation today
see this
tauri/examples/api/src-tauri/build.rs
Lines 12 to 15 in 8e083c9
example and add something similar for your plugin in your
build.rs
I will update the documentation today
ok, I also saw a method. May I ask if this is feasible?
https://github.com/tauri-apps/tauri/blob/dev/examples/api/src-tauri/src/lib.rs