跳转到内容

终端、设备与主题 SDK

先确定扩展运行在哪里。收银机属于登录终端,电视门店屏属于受控设备;给顾客屏换一套界面则是主题开发,不需要实现整个连接插件。

开发目标 契约 第一步
给 Foodiy 收银端增加连接能力 FOH 的 FoodiyPlugin / PluginHost 实现 initialize、start、invoke、stop;通过 requestId 关联调用结果。
控制局域网设备 / 让自己的设备受控 SEG 的 ControllerClient / LanControlledEndpoint 控制端发现并选择网关;受控端注册端点并回报实际执行结果。
给 Screen King 门店屏扩展功能 Android screen-module 与宿主能力声明 为目标宿主声明必需能力,通过会话和请求 ID 处理异步回执;模块按官方签名 ZIP 分发。
改顾客屏购物车、结账与输入界面 @foodiy/cds-theme-sdk,协议 cds-theme.v1 从已有 Vue 主题开始,使用只读状态及原生槽位,在浏览器预览后再打包。

示例:开发顾客屏主题

链接到「示例:开发顾客屏主题」
  1. 在已有主题工程的 theme.json 中设置主题 ID、版本、必需能力 requires 和可选能力 optional。
  2. 在 Vue 入口通过 createTheme(...).mount() 建立桥接,组件用 useCds() 读取状态。输入框、二维码与键盘用对应的 CdsSlot 留给宿主绘制;主题不接触明文输入或支付二维码内容。
  3. 在主题工程运行 npx vite,打开开发地址并加上 /?cds-preview,用预览数据检查不同状态。使用 cds-theme-pack 生成文件清单和 ZIP,交给受信任的签名、分发流程。预览成功不等于宿主已安装。

SEG 的“已批准”表示取得准入凭据;收到有效状态和能力目录后,才可按目录操作。断线后重新读取设备状态,不自动重发结果未知的命令。

已有插件或主题按协议、能力、签名和文件完整性校验。不要仅凭目标版本号与已装版本号不同就强制更新,也不要以能打开预览代替真机能力检查。