在传统的商家应用模型下,商家通过B端小程序配置消费者端小程序/小部件数据,但是在 LiveCard 场景下,配置 LiveCard 的场景在旺铺装修页面,开放平台通过配置应用打通了旺铺装修页面的配置能力,通过在开放平台开发配置应用,最后在旺铺装修表单提供给商家使用。
研发流程如下:
配置应用是属于商家应用中的一种极简版配置应用的开放形式,因此创建小部件前需要先创建应用,可参考创建应用文档 。
如果当前的商家应用类目支持配置应用,那么会透出创建配置表单的入口,如下所示。
2.1 点击「创建配置应用」。
2.2 填入配置应用的表单名称,即可成功创建配置应用。
注意:如遇“名称不合法”或“描述不合法”情况,请检查相关输入的文案,不允许输入不符合国家政策法规的文字。
2.3 上述信息如需修改,可以选中「基本信息」菜单进行修改。
在淘宝开发者工具 IDE 2.3.1 及以上版本中,点击「创建项目」-> 输入项目路径 -> 项目类型选择「配置应用」-> 选择关联应用,创建配置应用项目工程。
初始化项目有会生成基础项目脚手架;
项目根目录 ├── README.md ├── build # 构建产物地址 ├── config # 构建配置 ├── config.json # 见下面介绍 ├── dev.project.json # 构建hooks ├── mini.project.json ├── node_modules ├── package.json ├── public ├── schema.json # 见下面介绍 ├── scripts # 构建脚本 ├── src # 源码 └── tsconfig.json
1)config.json 介绍参考:点击查看;
2)mini.project.json 介绍参考:点击查看;
3)schema.json 介绍参考:点击查看。
然后参考 配置应用-API 的相关文档,进行具体的代码编写。所有配置应用的业务代码务必在 schema.json 文件中进行配置,而配置应用与小部件的对应关系务必在config.json 文件中定义。其中,bindRelation的每个对象必须包含小部件(或小程序)的appId、小部件(或小程序)的appVersion。
同时,可以在模拟器里预览效果。
注:店铺模块表单场景请按照店铺视觉规范(https://www.yuque.com/shopisv/abqk4n/zg17lq)。
案例:
第一步:在 schema.json 定义数据结构。
{ "jsonSchema": { "type": "object", "properties": { "webapp": { "widget": "TaobaowpCustomForm", "properties": { // 请只修改这里面的内容,不要修改外部字段,否则配置应用无法在旺铺装修生效 // 定义提交数据的类型,对齐标准 JSONSchema // 例如: "title": { "type": "string" } } } } } }
第二步:编写前端代码,调用 API 提交数据。
my.saveData({ data: { webapp: { "title": "Hellp WebApp" } } })
第三步:重新进入表单获取上次保存的数据。
my.getModuleData({ success: (value) => { console.log(value); // { webapp: { title: "Hellp WebApp" } } } });
为帮助开发者们快速方便地进行 getModuleData API 的调试,项目初始化会新增 mock.json 文件(淘宝开发者工具 IDE 2.3.2 及以上版本中存在,不需要可忽略),填充 returnValue 进行 mock 测试(只能修改 returnValue 的值,格式勿动)。
{ "apiMockData": [ { "apiName": "getModuleData", "returnValue": { "key": "val" } } ] }
与小程序一样,通过IDE右上角的「上传」按钮,将配置应用的代码上传至控制台。
代码上传后,可以控制台的配置应用「版本管理」菜单中看到此版本。开发者可以点击【发布】对此版本进行发布上线(无回滚功能),请开发者确保功能正常。
在店铺 LiveCard 装修场景下,审核通过、发布、订购(第一次)后,在店铺装修侧可以看到你上传的“配置应用”。
A: 配置表单是一个基于 JSON 描述表单的能力,配置应用是基于 Web 研发模式开发的应用来支持表单配置,且能力是图灵完备的。
A:我们推荐使用配置应用。未来会下线配置表单能力,但目前仍可以继续使用。
A:这次我们只针对 “表单配置” 升级,不涉及到小部件的修改。
A:本次升级只针对渲染,不涉及到云服务相关能力的变更。
A:本质上你可以用 JS + CSS + HTML 来写一个表单,为了安全考虑我们会限制部分能力,例如网络请求,全局 DOM 访问等。
A:我们会通过API的形式暴露给开发者调用各种官方能力,目前有4个选择器:链接选择器、商品选择器、图片选择器、券选择器,调用方法查看配置应用-API文档。
A:schema.json 是用来定义应用行为的,里面的 jsonschema 字段用来定义提交数据的结构,是必须的。
A:配置数据内容最大限制为10kb,请合理优化提交的数据内容。