Skip to content

App State

Lipraty edited this page Jan 9, 2026 · 2 revisions

AppState 资源用于存储和同步与后端业务逻辑无关的应用状态,以支持多端同步。

类型定义

AppState

字段 类型 描述
uid string 数据库主键
user_id string 用户 ID
state object? 应用自定义的状态数据
patchs Patch[]? 状态变更列表
updated_at number? 更新时间戳

Patch

字段 类型 描述
p string 字段路径,使用点号分隔
o set | delete 操作类型
v Patch[] | any 新值,可以是一个嵌套的子 Patch 列表

Warning

patchsstate 字段互斥存在。当 patchs 存在时,表示这是一个特定操作;当 state 存在时,表示这是一个完整快照

Note

由于 state 是一个任意结构的 object,一般建议描述变更时使用特定 object diff 算法生成 Patch 列表。

state 字段的内容完全由应用自定义,协议不对其结构做任何限制。常见的内容包括:

  • UI 配置(窗口位置、大小、可见性等)
  • 主题设置(颜色、字体、模式等)
  • 语言和地区设置
  • 插件配置
  • 自定义快捷键
  • 用户偏好设置

API

获取应用状态

POST /app.state.get

字段 类型 描述
user_id string 用户 ID
fields string[]? 需要获取的字段列表,支持点号分隔的路径表达式

获取应用状态。返回一个 AppState 对象。如果状态不存在,返回一个默认的空对象。

更新应用状态

POST /app.state.update

字段 类型 描述
user_id string 用户 ID
state object 新的状态数据
fields string[]? 需要更新的字段列表,支持点号分隔的路径表达式

更新应用状态。具体的行为和处理方式由客户端自行决定。

事件

app-state-updated

当应用状态被更新时触发(包括来自其他设备的更新)。必需资源: app_state

Clone this wiki locally