W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Tauri 為您的前端開(kāi)發(fā)提供了其他系統(tǒng)原生功能。 我們將其稱作指令,這使得您可以從 JavaScript 前端調(diào)用由 Rust 編寫(xiě)的函數(shù)。 由此,您可以使用性能飛快的 Rust 代碼處理繁重的任務(wù)或系統(tǒng)調(diào)用。
以下是一個(gè)簡(jiǎn)單示例:
src-tauri/src/main.rs
#[tauri::command]
fn greet(name: &str) -> String {
format!("Hello, {}!", name)
}
一個(gè)指令等于一個(gè)普通的 Rust 函數(shù),只是還加上了 #[tauri::command] 宏來(lái)讓其與您的 JavaScript 環(huán)境交互。
最后,我們需要讓 Tauri 知悉您剛創(chuàng)建的指令才能讓其調(diào)用。 我們需要使用 .invoke_handler() 函數(shù)及 Generate_handler![] 宏來(lái)注冊(cè)指令:
src-tauri/src/main.rs
fn main() {
tauri::Builder::default()
.invoke_handler(tauri::generate_handler![greet])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
現(xiàn)在您的前端可以調(diào)用剛注冊(cè)的指令了!
使用 @tauri-apps/api JavaScript 庫(kù)來(lái)調(diào)用新創(chuàng)建的命令, 通過(guò) JavaScript 訪問(wèn)諸如窗口、文件系統(tǒng)等核心功能, 您可以使用自己喜歡的 JavaScript 包管理器來(lái)安裝。
npm install @tauri-apps/api
yarn add @tauri-apps/api
pnpm add @tauri-apps/api
JavaScript 庫(kù)安裝之后,您就可以在 main.ts 中調(diào)用指令了:
src/main.ts
import { invoke } from '@tauri-apps/api'
// 調(diào)用命令
// 在應(yīng)用窗口中右鍵,打開(kāi)開(kāi)發(fā)者工具
// 你會(huì)看到控制臺(tái)上輸出了 "Hello, World!"!
invoke('greet', { name: 'World' })
// `invoke` 返回的是一個(gè) Promise
.then((response) => console.log(response))
提示
若您想要了解更多有關(guān) Rust 和 JavaScript 之間通信的信息,請(qǐng)參閱 Tauri 進(jìn)程間通信指南。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: