签名
a3s.signature 是官方宿主能力扩展。浏览器只负责采集手写轨迹或键入姓名,保存、删除、查看、授权和审计均由宿主服务处理。
实时示例FormSignatureReference[]
受控值
{
"approvalSignature": []
}表单受控值只保留最多一个稳定引用。手写点位、键入姓名、图片、对象 URL、访问令牌和请求状态不会进入表单文档或表单值。
值结构
字段值使用零个或一个引用的数组:
引用对象不接受额外属性。签名图像、原始轨迹、签署姓名、证书、设备信息和临时访问地址应由宿主根据 id 解析。
Schema
生成结果固定包含 maxItems: 1、uniqueItems: true 和闭合引用对象 Schema。父对象的 required 决定字段属性是否必须存在,数组的 minItems 决定是否必须完成签署。
UI 节点属性
Designer 组件目录、设计态和属性面板均由 createSignatureNodeRegistry 提供。签名字段无需在应用内重复注册目录项。
宿主签名服务
save 请求
采集联合类型:
手写采集最多保留 128 笔和 4,096 个点。限制在浏览器采集阶段执行,宿主仍需校验请求大小、签署权限、表单 digest、字段身份和业务状态。
React
Vue
Web Component
交互状态
宿主在保存或删除期间替换受控值时,组件不会覆盖新值,而是报告冲突并要求重新核对。
键盘与辅助技术
- 默认同时提供手写和键入方式,键盘用户可直接完成键入签名;
- 签名方式使用标准 tab 语义,输入框保留原生姓名自动填充;
- 手写区域可获得焦点,
Backspace或Delete撤销最后一笔; - 保存、删除和错误状态通过
status或alert语义播报; - 仅允许手写时,宿主必须提供符合签署政策的无障碍替代流程;
- 只读签名仍可调用经过宿主授权的查看操作。
安全边界
- 表单值不得保存原始轨迹、键入姓名、Base64 图片、Blob URL、Cookie、令牌或临时签名地址;
save必须校验用户权限、表单 revision、plan digest、字段身份和允许的采集方式;previous用于宿主执行原子替换,避免先删除旧记录造成签署空窗;remove和open每次执行时都需要重新授权;- 宿主错误应映射为可展示文案,服务端堆栈、对象路径和凭据不得进入界面;
- 法律效力、身份核验、证书、时间戳、保留期和审计证据由宿主策略决定。
