Tauri:Web调用Rust函数
文章目录
前言
在上一篇文章中,我们搭建好了 Tauri
环境,早就想迫不及待的进行开发了。
Taur
使用 Web+Rust
技术,所以今天来了解一下如何从 Web
中调用 Rust
。
Web 调用 Rust
要想在 Web
中调用 Rust
代码,需要在指定的函数上加入 #[tauri::command]
属性,如下所示
|
|
这个函数接收一个字符串切片,然后我们在其前面添加了 Hello,
并返回给了调用者。
仅仅这样做是不够的,我们还要告诉 Tauri
这个函数可以在 Web
中调用。
在 src-tauri/main.rs
中的 main
函数就有这么一句话来做这个事情
|
|
在 invoke_handler
中,我们使用 tauri::genrate_handler!
这个宏,把 greet
传进去了,这样就能从 Web
中调用了。
tauri::generate_handler!
的参数是个数组,所以这里可以放多个函数。
做好了上面的工作,就可以在 Web
中可以通过 invoke
来调用 Rust
函数
|
|
传递参数
任意数据类型
Web
在给 Rust
传递参数可以是任何类型,但是要实现了 serde::Serialize
。
在传递结构体数据时,要按照 JSON
的格式进行传递。
|
|
调用
|
|
Window
有时候我们想要操作 Window
,在函数中只需要定义这个变量就行
|
|
这样我们就可以在 Web
中直接调用 greet
,不用传参数, window
这个参数 tauri
会自动帮你赋值,如下所示
|
|
AppHandle
AppHandle
中提供了许多方法,让我们可以方便的访问一些资源,比如查找应用内的资源,应用配置存放的路径等等。
使用 AppHandle
和 Window
一样,只需要在函数中定义就行
|
|
错误处理
在 Rust
是有专门处理错误的类型 Result
,在 Tauri
中也能使用
|
|
我们把 greet
改成了一个可以返回错误的函数,正常情况返回 This worked!
发生错误返回 This failed!
。
在 Web
中就可以通过 Promise
来分别处理正常和错误的情况,如下所示
|
|