フロントエンド(JavaScript/TypeScript)から Rust で定義した関数(Command)を呼び出す基本的な方法を解説します。
Tauri の IPC(プロセス間通信)の核となる機能です。
前提: Rust 側の準備
Rust 側で #[tauri::command] アトリビュートを付けた関数を定義し、ハンドラとして登録する必要があります。
編集ファイル: src-tauri/src/lib.rs
// src-main.rs または lib.rs
#[tauri::command]
fn simple_command() {
println!("Called from JS!");
}
fn main() {
tauri::Builder::default()
.invoke_handler(tauri::generate_handler![simple_command])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
フロントエンド側の実装
@tauri-apps/api/core パッケージ(v2 の場合)の invoke 関数を使用します。
編集ファイル: src/App.tsx (例)
import { invoke } from '@tauri-apps/api/core';
async function callRust() {
await invoke('simple_command');
console.log('Command invoked');
}
基本的な呼び出しはこれだけです。非同期関数 (Promise) として実行される点に注意してください。