Appearance
Schema 与 Clickable
这一页只记录 schema / clickable 当前能确认的字段形态与消费边界。
1. 字段表
| 字段 | 类型 | 值格式 | 已确认示例 | 当前状态 | 说明 |
|---|---|---|---|---|---|
clickable | boolean | true/false | true | 已确认 | 是否可点击 |
schema | string | URL、协议字符串、变量引用 | $$jumpUrl、$$videoUrl、https://...、mqqapi://... | 已确认 | 点击跳转目标 |
2. schema 的证据边界
当前至少有两层直接证据:
RowData(components, schema)说明行级数据模型本身就有schema- 内置模板 JSON 直接出现了
"clickable": true与"schema": "$$jumpUrl"
3. schema 的值格式
当前已经明确出现过的值格式:
| 格式 | 示例 | 状态 | 说明 |
|---|---|---|---|
| 变量引用 | $$jumpUrl | 已确认 | 模板最常见写法 |
| 变量引用 | $$videoUrl | 已确认 | 模板中直接出现 |
| HTTPS URL | https://example.com | 已确认 | 真实跳转目标格式 |
mqqapi:// 协议 | mqqapi://... | 已确认 | 业务内协议格式 |
当前没有实现级证据支持的内容:
schema必须只接受某一种协议- 所有自定义协议都一定能通过
schema一定支持对象形式
4. 常见落点
当前高可信落点:
| 落点 | 状态 | 说明 |
|---|---|---|
| 根属性节点 | 已确认 | 例如 viewId = "app" |
| 子属性节点 | 已确认 | 例如 viewId = "header" |
| 行级数据结构 | 已确认 | RowData(components, schema) |
典型结构:
json
{
"viewId": "app",
"clickable": true,
"schema": "$$jumpUrl",
"attributes": [
{
"viewId": "header",
"schema": "$$videoUrl"
}
]
}5. clickable
当前可确认事实:
clickable是真实模板字段- 它通常和
schema成对出现 - 当前已拿到的稳定模板样例里,
clickable写法是布尔值
当前不要写成已确认规则的内容:
schema存在时clickable一定可以省略clickable=false时仍会触发跳转clickable支持数字或字符串写法
6. 行级 schema
RowData(components, schema) 很关键,因为它说明:
schema不只可能存在于attributes树- 行数据对象本身也可能携带跳转目标
- 后续若继续追“点击到底挂在布局节点还是数据行”,这一层仍是关键入口
7. 点击与动态更新边界
当前已确认:
- 点击回调接口存在
- 按钮点击响应对象里带
updateInfo - Markdown 层存在
MarkdownStateUpdateData(updateData=JSONArray)
当前尚未闭环:
- 哪些
schema点击后会回写同一卡片 updateInfo和schema的稳定联动协议- 是否存在更多必须同时下发的配套字段
8. 关键源码
上文第 2 节到第 7 节分别对应以上源码证据,当前不再额外延伸没有命中实现的推测项。