动作调用
说明动作参数、执行顺序和步骤结果的处理。
Documentation content is currently available in Simplified Chinese.
一个动作由清单中的 actions[] 和后台中的 actions[actionId] 共同定义。编辑器根据清单显示输入,宿主根据相同的 Schema 检查调用参数。
#输入参数
调用参数是 JSON 对象。宿主检查必填字段、数据类型和字段约束后,才调用后台处理函数。未知字段默认不被接受;需要开放对象字段时,在对应 Schema 中设置 additionalProperties。
default 用于描述默认输入。处理函数仍可以给可选参数设置 JavaScript 默认值,让自己的实现清楚表达省略参数时的行为,见开发动作。
#执行
处理函数可以同步返回,也可以返回 Promise。飞块按照 execution 的超时、资源和重复触发设置调度调用。例如,两个操作都修改剪贴板时,声明相同资源可以让宿主统一协调所有入口的执行。
执行属性集中定义在 ActionExecution,这里沿用同一套声明。
#结果
普通 JSON 返回值成为步骤结果。声明 outputSchema 后,宿主检查结果是否符合它的 Schema;校验失败时,这一步以错误结束。
设备导航是专门的操作结果:处理函数返回 context.deck.navigate() 生成的对象,宿主据此切换触发设备的屏幕。具体格式见 context.deck。
#错误
处理函数抛出异常或返回拒绝的 Promise 时,飞块显示错误消息。错误文字应描述发生了什么,例如“找不到所选文件”,让用户知道要检查哪个输入。