Commands 列表
灵动桌面框架内置的所有 IPC 命令参考(以 src-tauri/src/lib.rs 的 generate_handler! 为准,共 6 个)。前端已在 src/lib/api/ 封装为 systemApi、configApi,推荐通过封装调用。
命令失败时 invoke 以 CommandError({ code, message })拒绝,错误码见 错误码速查。
系统模块
greet
问候测试命令(保留为示例)。
| 属性 | 值 |
|---|---|
| 命令名 | greet |
| 参数 | name: string |
| 返回值 | string |
| 前端封装 | systemApi.greet(name) |
| 错误 | name 为空 → INVALID_INPUT(“名称不能为空”) |
const message = await invoke<string>('greet', { name: '灵动' })
// → "Hello, 灵动! 来自 Rust 的问候!"
get_system_info
获取系统信息:操作系统、CPU 架构、应用版本、应用数据目录(取不到时为 "unknown")。
| 属性 | 值 |
|---|---|
| 命令名 | get_system_info |
| 参数 | 无 |
| 返回值 | SystemInfo |
| 前端封装 | systemApi.getSystemInfo() |
const info = await invoke<SystemInfo>('get_system_info')
// 后端实际返回:{ os: "windows", arch: "x86_64", app_version: "0.1.0", data_dir: "C:\\Users\\..." }
WARNING
后端返回的字段名是 app_version / data_dir(snake_case),与 src/types/system.ts 中的 appVersion / dataDir 不一致,详见 TypeScript 类型。
配置模块
配置存储在 SQLite 表 app_config 中。首次建库时写入默认配置:theme = light、language = zh-CN、sidebar_collapsed = false。
get_all_config
查询所有配置项,按 key 排序,不含已软删除的项。
| 属性 | 值 |
|---|---|
| 命令名 | get_all_config |
| 参数 | 无 |
| 返回值 | AppConfig[] |
| 前端封装 | configApi.getAll() |
get_config
查询单个配置项的值。
| 属性 | 值 |
|---|---|
| 命令名 | get_config |
| 参数 | key: string |
| 返回值 | string |
| 前端封装 | configApi.get(key) |
| 错误 | 配置项不存在或已软删除 → NOT_FOUND |
set_config
设置配置项(不存在则新增,存在则更新值和 updated_at;对已软删除的键只更新值,不会恢复)。
| 属性 | 值 |
|---|---|
| 命令名 | set_config |
| 参数 | key: string, value: string |
| 返回值 | 无 |
| 前端封装 | configApi.set(key, value) |
| 错误 | key 为空 → INVALID_INPUT |
delete_config
软删除配置项(写入 deleted_at,不物理删除)。
| 属性 | 值 |
|---|---|
| 命令名 | delete_config |
| 参数 | key: string |
| 返回值 | 无 |
| 前端封装 | configApi.delete(key) |
| 错误 | 配置项不存在或已删除 → NOT_FOUND |
TIP
数据库层还提供 hard_delete_config(物理删除)与 restore_config(恢复软删除),当前未注册为 Command,需要时按 Command 开发 的步骤自行暴露。
插件命令
更新检查、打开外部链接、本地存储、日志、进程重启等能力来自官方插件(updater、opener、store、log、process),通过各插件的 JS API 调用(如 src/lib/api/updater.ts),不在上表之列;其权限在 src-tauri/capabilities/default.json 中声明。