-
Notifications
You must be signed in to change notification settings - Fork 1
App State
Lipraty edited this page Jan 9, 2026
·
2 revisions
AppState 资源用于存储和同步与后端业务逻辑无关的应用状态,以支持多端同步。
| 字段 | 类型 | 描述 |
|---|---|---|
| uid | string | 数据库主键 |
| user_id | string | 用户 ID |
| state | object? | 应用自定义的状态数据 |
| patchs | Patch[]? | 状态变更列表 |
| updated_at | number? | 更新时间戳 |
| 字段 | 类型 | 描述 |
|---|---|---|
| p | string | 字段路径,使用点号分隔 |
| o |
set | delete
|
操作类型 |
| v | Patch[] | any | 新值,可以是一个嵌套的子 Patch 列表 |
Warning
patchs 与 state 字段互斥存在。当 patchs 存在时,表示这是一个特定操作;当 state 存在时,表示这是一个完整快照。
Note
由于 state 是一个任意结构的 object,一般建议描述变更时使用特定 object diff 算法生成 Patch 列表。
state 字段的内容完全由应用自定义,协议不对其结构做任何限制。常见的内容包括:
- UI 配置(窗口位置、大小、可见性等)
- 主题设置(颜色、字体、模式等)
- 语言和地区设置
- 插件配置
- 自定义快捷键
- 用户偏好设置
/app.state.get
| 字段 | 类型 | 描述 |
|---|---|---|
| user_id | string | 用户 ID |
| fields | string[]? | 需要获取的字段列表,支持点号分隔的路径表达式 |
获取应用状态。返回一个 AppState 对象。如果状态不存在,返回一个默认的空对象。
/app.state.update
| 字段 | 类型 | 描述 |
|---|---|---|
| user_id | string | 用户 ID |
| state | object | 新的状态数据 |
| fields | string[]? | 需要更新的字段列表,支持点号分隔的路径表达式 |
更新应用状态。具体的行为和处理方式由客户端自行决定。
当应用状态被更新时触发(包括来自其他设备的更新)。必需资源: app_state。
Satori App for Desktop. CC BY-NC-SA 4.0 License.