🔌 官方插件
Tauri 提供丰富的官方插件:
| 插件 | 功能 |
|---|---|
| @tauri-apps/plugin-shell | 执行系统命令 |
| @tauri-apps/plugin-fs | 文件系统操作 |
| @tauri-apps/plugin-dialog | 系统对话框 |
| @tauri-apps/plugin-http | HTTP 请求 |
| @tauri-apps/plugin-notification | 系统通知 |
| @tauri-apps/plugin-clipboard | 剪贴板 |
| @tauri-apps/plugin-updater | 自动更新 |
| @tauri-apps/plugin-store | 本地存储 |
| @tauri-apps/plugin-os | 系统信息 |
| @tauri-apps/plugin-process | 进程管理 |
| @tauri-apps/plugin-positioner | 窗口定位 |
| @tauri-apps/plugin-global-shortcut | 全局快捷键 |
📥 安装插件
bash
# 安装前端包
npm add @tauri-apps/plugin-shell
# 安装 Rust 包
cd src-tauri
cargo add tauri-plugin-shell
注册插件
rust
// src-tauri/src/lib.rs
fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_shell::init())
.plugin(tauri_plugin_dialog::init())
.run(tauri::generate_context!())
.expect("error");
}
🔧 自定义插件
创建自定义插件扩展功能:
rust
// 定义插件
use tauri::plugin::{Builder, TauriPlugin};
use tauri::Runtime;
pub fn init() -> TauriPlugin {
Builder::new("my-plugin")
.invoke_handler(tauri::generate_handler![
my_command
])
.build()
}
#[tauri::command]
fn my_command() -> String {
"Hello from plugin".to_string()
}
rust
// 使用插件
fn main() {
tauri::Builder::default()
.plugin(my_plugin::init())
.run(tauri::generate_context!())
.expect("error");
}
📦 社区插件
社区贡献的插件:
- tauri-plugin-sql - SQLite/MySQL/PostgreSQL
- tauri-plugin-localhost - 本地服务器
- tauri-plugin-log - 日志系统
- tauri-plugin-persisted-scope - 持久化权限