跳到主要内容

ARC 2.0.0-beta.25

Patch、scene 与 capability 参考

理解 render-first 更新、目标报告的 capability,以及刻意保持很窄的 degradation 合同。

本参考把三件彼此相关但不同的事情分开:保持交互 tree 的同步、为目标选择呈现方式,以及描述 device-level scene。

先 render;再 patch 已知 tree

交互 session 从一份已 render 的 AUP tree 开始。后续变更可以针对 tree version 发送 patch。当前 patch vocabulary 包含 createupdateremovereorder。这是一种 renderer/session 同步机制,不是让应用作者随意拼写 transport message 的要求。

state 变更较简单时,应在 DSL 或 AUP source 中表达 state/event 意图,让 runtime 决定如何更新 tree。某个 target 漏收或拒绝更新时,不能只因 source 通过 validate 就假定它已经呈现了作者的预期状态。

capability 由目标报告

AUP 模型定义共享 degradation 规则;实际设备 capability 集合(DeviceCaps)在握手中由目标报告,renderer 再实施目标端的呈现。当前 primitive 的 support 值为:

text
native | webview | partial | unsupported

这些值描述的是某个 target 与某个 primitive 的关系,不是整个 app 的通用品质分数。

当前共享 degradation contract 刻意很少。它的 9 条 chain 只在设备能力与降级保留一份规范表,并与 target-specific 验收说明放在一起;不要把它复制到每个 reference 页面。

没有 chain 的 custom 或未知 type 会原样通过,并不会自动变成 text。因此若要声称跨设备可用,必须有明确 primitive 和目标端检查。

scene 不是泛用 UI 逃生口

runtime 有面向 scene 的投递表面,但其较低层的 transport 细节不是绕开 node/event/state 编写的稳定捷径。只有相关 target 合同与验收已知时才使用 scene。不要用 frame、bridge 或嵌入表面绕开 capability 或 data-scope 审阅。

当前 primitive 清单见 Primitive 类型分类与证据;安全编写 state 变更见 Event、state 与 binding