my.getextconfig(object object)
支小宝客户端 支持
安诊儿客户端 支持
主体: 企业支付宝小程序
相关文档: getextconfigsync
获取小程序模板自定义数据字段。
在模板小程序开发及实例化的过程中,ext 信息的传递路径如下:
模板小程序开发:
- 1.1 服务商创建模板小程序并在本地开发,在项目根目录(与 app.json 同级)创建 ext.json 文件,最小示例内容:
{"extenable":true,"ext":{"i":"am ok"}}
; - 1.2 服务端对模板小程序进行编码和调试,代码中调用 my.getextconfig/my.extconfigsync 获取 ext.json 中的 ext 字段内容作为小程序运行时个性化的配置项;
- 1.3 服务商完成模板小程序开发,提交发布,支付宝审核通过。
模板小程序实例化:
- 2.1 服务商调用 alipay.open.mini.version.upload 请求为特定商户创建模板小程序实例,传入的 ext 参数包含该商户特有的配置;
- 2.2 支付宝应服务商请求创建小程序新实例或新版本,将请求的 ext 参数保存为 ext.json 文件,置入实例小程序的代码包,覆盖代码包中继承自模板的 ext.json 文件;
- 2.3 小程序实例在客户端被加载运行,它包含与模板小程序一样的代码和个性化的 ext.json,运行时 my.getextconfig/my.getextconfigsync 读取此 ext.json 文件中的 ext 字段。
直到最后一步(即 2.3),小程序才能真正获取和使用最终的 ext 信息。这个较晚的时间点会带来一些调试方面的困难,发现相关代码问题往往需要模板小程序重新发布提审。 为了减少反复操作,建议在 1.2 中仔细设计和修改 ext.json,尽可能模拟真实情况并充分调试相关代码,在 2.1 构造真实 ext 内容时严格参照 1.2 中使用的 ext.json 格式。
object object
查看示例
属性 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
success | function | - | 否 | 调用成功的回调函数 |
fail | function | - | 否 | 调用失败的回调函数 |
complete | function | - | 否 | 调用结束的回调函数(调用成功、失败都会执行) |
success 回调函数
参数
object res
查看示例
属性 | 类型 | 描述 |
---|---|---|
data | object | 配置在模版小程序 |
extconfig | object | 配置在模版小程序 ext.json 中的 ext 配置字段的值,基础库 2.8.5 及以上版本开始支持 |
object
返回小程序的 ext.json
中的 ext 字段的值。
fail 回调的参数为 object,error
属性为错误码,errormessage
属性为错误消息。
错误码 | 错误消息 | 凯发app官方网站的解决方案 |
---|---|---|
20 | templateconfigmodel is null |
请确保 ext.json 存在且 ext 字段不为空。 |
21 | templateconfig disabled |
已停用模板配置。 |
my.getextconfig({
success: (res) => {
console.log(res);
},
fail: (err) => {
console.log(err);
},
});
q:为什么实例小程序调用 my.getextconfig/my.getextconfigsync 获取不到数据?
一般都是因为 alipay.open.mini.version.upload 传入的 ext 参数有问题,请检查:
- ext 参数内容是否符合模板配置规范(参考 模板小程序 文档);
- ext.json 中
extenable
字段是否已设置为true
。
q:如果 ext.json 文件需要在开发时生效、在上传时不生效,要怎么做?
推荐以下两种方式:
- 可以把 ext.json 配置到 mini.project.json 的 uploadexclude ,这样打包上传的时候就不会 ext.json 文件打包进去。
- 可以在上传前把 ext.json 中
extenable
字段设置为false
。