为了方便服务商的开发者在 IDE 对授权小程序的开发调试工作,需要引入 ext.json 的概念。
对于 pages、extPages、subPackages、usingComponents 这四个字段
ext.json 是一个配置文件,放置在小程序项目的根目录下。
以下是一个包含了所有配置选项的 ext.json
{ "extEnable": true, "extAppid": "EXT_APPID", "directCommit": false, "ext": { "extAppid": "EXT_APPID" }, "pages": ["pages/index/index", "pages/logs/logs"], "extPages": { "pages/logs/logs": { "navigationBarTitleText": "logs" } }, "window": { "backgroundTextStyle": "light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "Demo", "navigationBarTextStyle": "black" }, "tabBar": { "list": [{ "pagePath": "pages/index/index", "text": "首页" }, { "pagePath": "pages/logs/logs", "text": "日志" }] }, "networkTimeout": { "request": 10000, "downloadFile": 10000 } }
ext.json 中的配置字段分为两种:
属性 | 类型 | 必填 | 描述 |
---|---|---|---|
extEnable | bool | 是 | 配置 ext.json 是否生效 |
extAppid | string | 是 | 授权小程序 appid |
ext | object | 否 | 开发自定义的数据字段 |
extPages | object | 否 | 单独设置每个页面的 json |
directCommit | bool | 否 | 是否直接提交到授权小程序开发版本 |
extEnable 是一个 bool 类型的字段,用于规定当前的 ext.json 文件是否生效,开发者可以通过修改这个字段来开启和关闭针对授权小程序的特殊化开发。
extAppid 只能填写授权小程序的 appid,假如开发者在此处填写的是 EXT_APPID,那么在 extEnable 为 true 的情况下,后续的开发逻辑都会基于 EXT_APPID 对应的授权小程序来运行,预览的二维码也是授权小程序的链接。
ext 字段是开发自定义的数据字段,在小程序中可以通过 xhs.getExtConfigSync 或者 xhs.getExtConfig 获取到这些配置信息。
extPages 是一个对象,对象中的每个 key 是页面 path ,每个 key 对应的 value 是 page.json 中所规定的各项配置。
当开发者设置这个配置以后,小程序框架会对应的修改相对应的 page 的配置信息。
directCommit 是一个 bool 类型的字段,用于规定当前的上传操作是否是直接上传到 extAppid 对应的小程序开发版本。
当 ext.json 中的字段同 app.json 中一致时,ext.json 的字段会合并 app.json 中的对应字段。
补充说明