Tauri を使ってアプリを作っていたところ、躓いたことをメモする。
command my_custom_command1 not found
フロントエンドから Rust を呼び出すときに、次のエラーがでた。
1
| command my_custom_command1 not found
|

そのときのソースは次の通り。
フロントエンド(TypeScript)
1 2 3 4 5 6 7 8 9 10
| import { tauri } from '@tauri-apps/api';
try { tauri.invoke('my_custom_command1'); tauri.invoke('my_custom_command2'); tauri.invoke('my_custom_command3'); tauri.invoke('my_custom_command4'); } catch (error) { console.log(error); }
|
Rust
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| #![cfg_attr( all(not(debug_assertions), target_os = "windows"), windows_subsystem = "windows" )]
#[tauri::command] fn my_custom_command1() { println!("I was invoked from JS!"); }
#[tauri::command] fn my_custom_command2() { println!("I was invoked from JS!"); }
#[tauri::command] fn my_custom_command3() { println!("I was invoked from JS!"); }
#[tauri::command] fn my_custom_command4() { println!("I was invoked from JS!"); }
fn main() { tauri::Builder::default() .invoke_handler(tauri::generate_handler![my_custom_command1]) .invoke_handler(tauri::generate_handler![my_custom_command2]) .invoke_handler(tauri::generate_handler![my_custom_command3]) .invoke_handler(tauri::generate_handler![my_custom_command4]) .run(tauri::generate_context!()) .expect("error while running tauri application"); }
|
解決
複数のコマンドを設定するときは、リストで設定する必要がある。
NG
1 2 3 4 5 6 7 8 9
| fn main() { tauri::Builder::default() .invoke_handler(tauri::generate_handler![my_custom_command1]) .invoke_handler(tauri::generate_handler![my_custom_command2]) .invoke_handler(tauri::generate_handler![my_custom_command3]) .invoke_handler(tauri::generate_handler![my_custom_command4]) .run(tauri::generate_context!()) .expect("error while running tauri application"); }
|
OK
1 2 3 4 5 6 7 8 9 10 11
| fn main() { tauri::Builder::default() .invoke_handler(tauri::generate_handler![ my_custom_command1, my_custom_command2, my_custom_command3, my_custom_command4 ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); }
|