Tauri 2.0应用插件开发要点补全记录

发布时间:2025-06-05 21:36
最后更新:2025-06-05 21:36
所属分类:
Rust

Tauri 2.0已经不是一个崭新的GUI框架了,Tauri 2.0版本的推出,掀起了桌面GUI框架向移动端进攻的风潮。正是具备了这种横跨Windows、Linux、macOS、Android、iOS平台的能力,也让Tauri 2.0成为了很多开发者在开发GUI应用时的首选。通过插件系统,Tauri 2.0可以方便的实现对一定功能的封装,并且可以用来在各个平台之间抹平功能差距。但是令人不爽的一点是,Tauri 2.0的官方文档在这方面的介绍十分寥寥,估计很多开发者看的也是一头雾水。

官方文档中的插件开发主要分为两篇,一篇介绍的是插件项目的创建以及其中主要核心内容的作用,另一篇介绍的则是移动端插件的开发,主要倾向于如何沟通插件的Rust代码和Android平台、iOS平台的原生代码。但是不得不说的是,如果按照这两篇文档的内容来进行开发工作,大部分插件的源码是可以正常写完的,但是可能在实际测试和运行的时候就会遇到很多莫名其妙的问题,就更不要说这些问题的答案可能无处寻找了。

这篇文章计划在实际完成两套适配Android端功能插件的同时,对官方文档中没有提到的且可能会影响到开发的一些要点记录下来,供未来的开发参考。

Tauri项目的创建

对于Tauri项目的创建,官方已经提供了非常方便的工具,这里推荐使用其中的pnpm、bun和Cargo三种方案中的一个。具体理由是它们在创建项目的时候所需要敲的命令长度要短很多。Cargo可能略长,但是它是Rust的(🤣相信很多Rust使用者都会有这种感觉)。

用来管理Tauri前端项目的项目管理器首推bun,其次是pnpm。这个推荐的理由很简单,它们安装NodeJS依赖的机制,比较节省硬盘空间,而且不得不说,bun的运行实在是很快,兼容性也不错,起码在很多时候要比Deno好不少。

Deno作为前端项目管理器也是可以选的,但是Deno在编译插件的JS功能文件时需要对rollup.config.js文件进行一些适配修改,所以为了环境的统一和省事还是建议使用bun。后文会说明如果使用Deno需要修改哪些内容。

为了省事,这里记录一下几种推荐方式创建Tauri项目的命令。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 使用pnpm创建
pnpm create tauri-app

# 使用bun创建
bun create tauri-app

# 使用Deno创建(知道你一定会说长)
deno run -A npm:create-tauri-app

# 使用Cargo创建
# 需要先安装create-tauri-app命令行工具,使用`--locked`参数是为了锁定锁安装命令行工具的版本
cargo install creat-tauri-app --locked
# 之后就可以使用Cargo启动这个工具了
cargo create-tauri-app

这样直观的比较起来是不是还是bun的命令要短不少。使用哪种项目管理工具创建项目跟项目中所使用的管理工具无关,项目创建过程中选择使用的管理工具实际上是用来生成package.json文件中的常用脚本命令用的,所以一旦选择了就尽量要在这个项目中坚持使用下去。

这篇文章里主要使用bun作为NodeJS的运行时和项目管理工具,如果使用了Deno会特别说明和标注。

在一个项目创建完成以后,建议先完成其中前端NodeJS依赖的安装,然后再运行一下空白的项目,让运行所需的中间体文件都得以生成。完成这个操作可以直接进入到项目目录中,运行以下命令。

1
2
3
4
5
# 安装项目的依赖
bun install

# 以dev模式运行桌面项目
bun run tauri dev

增加Android平台支持

一个项目在刚完成创建以后,默认只提供了Windows、Linux和macOS系统的支持,对于Android和iOS这些移动系统是不支持的。因为移动系统的支持是需要分别使用Android和iOS的项目来完成Rust项目的加载,而不是直接由Rust加载。

观察一下Tauri构建的项目中Rust部分的源码就可以知道,Tauri项目中Rust部分内容实际上被编译成了一个库来供不同平台的核心程序加载的。

所以要增加Android和iOS平台的支持,就需要在已经创建的项目中增加这两个平台相应的启动项目。依旧以Android系统为例,要增加Android系统的启动项目,需要在项目目录下,使用Tauri提供的以下命令。

1
bun run tauri android init

这个命令在执行以后,即会在src-tauri/gen目录下生成一个名为android的目录,这个目录里面即是用于启动Tauri应用的Android项目。看这个项目所在的目录名字gen就应该知道,这个Android项目中的内容是不应该随意手动修改的,所以应用中与Android系统进行交互的操作也不要书写在这个项目里面。

新创建的Android项目不需要使用Android Studio打开,只需要在虚拟Android设备或者实体机上运行一次即可。这个运行步骤会使Tauri生成项目开发所需要的所有内容,包括拉取所有的依赖。

运行一遍空项目的动作一定不要跳过,这对于接下来创建和打开插件项目是非常有用的。

创建插件项目

插件项目的创建是在整个应用的项目目录里完成的,也同样是通过Tauri提供的命令行工具来完成的。

增加插件的Android平台适配项目

在母项目中使用新创建的插件

使用哪个IDE来编辑插件?

切换IDE中的插件Rust代码活跃状态

各种名称、identifier的作用

从项目开始创建,命令行交互工具开篇就是询问项目的名称和identifier的设置。那么在Tauri项目中出现的这些名称都被用在了哪里?在项目实际运行的时候都发挥了哪些作用?

项目中一些常用的关键目录

命令调用的贯通

如何获取参数和返回值

无参数命令和无返回值命令如何处理

从插件中抛出事件

提供中JS中访问插件命令的功能

插件的Permission管理


索引标签
Rust
Tauri
Plugin
插件
Android
iOS