被动降级
目前有三种情况,会导致插件降级:
1.旧版本的客户端运行发生不兼容的变更(breaking changes)后的QAP应用离线包:因无法兼容,需要降级。
2.新版本的客户端发布了不兼容的变更(breaking changes),ISV未发布新的QAP应用离线包:因无法兼容,需要降级。
3.客户端运行异常——客户端加载QAP相关配置项碰到异常时。
主动降级
开发者也可以通过千牛应用管理后台,主动降级。
1.访问千牛控制台
2.按照:开发工具->配置管理。进入配置管理页面。如下图所示,点击配置列表之后可以看到当前已有的配置项,对于配置项当前区分android和ios。如果一个配置项需要在android上和ios上都要使用,需要分别在不同的平台上添加:
3.添加一个新的配置,如下图所示

4.测试配置,在添加好配置之后先测试一下插件上的表现,填写测试账号,点击保存后,服务端会把配置信息推送给测试账号的客户端。

5.正式发布,点击正式发布之后会把此配置信息推送到app的所有用户。

降级配置为JSONArray,每个item为一种降级场景。
| 字段 | 描述 | 是否必选 | 值说明 | 说明 |
|---|---|---|---|---|
clientVersion |
客户端版本 | 非必选 | 该配置的size为2,即最小版本、最大版本,闭区间 ["1","2"]表明版本号1、2都降级。["","3"]表明所有版本号<=3的都降级,["1",""]表明所有版本号>=1的都降级 |
不填表明所有客户端版本都执行降级 |
jssdkVersion |
依赖的jssdk版本 | 非必选 | 该配置的size为2,即最小版本、最大版本,闭区间 ["1","2"]表明版本号1、2都降级。["","3"]表明所有版本号<=3的都降级,["1",""]表明所有版本号>=1的都降级 |
不填表明不需要按照jssdk版本降级 |
sysVersion |
依赖的系统版本 | 非必选 | 该配置的size为2,即最小版本、最大版本,闭区间 ["1","2"]表明版本号1、2都降级。["","3"]表明所有版本号<=3的都降级,["1",""]表明所有版本号>=1的都降级 |
不填表明不需要按照系统版本降级 |
downgrade |
降级配置 | 非必选 | true:降级,false:不降级, 默认 false |
|
isQAP |
回调地址中的H5应用是否基于QAP开发 | 非必选 | true:基于QAP开发并通过qap package打包发布,false:原生的H5应用开发方式, 默认为true |
|
callbackUrl |
降级的回调地址 | 非必选 | 不填表明降级时打开默认的callbackUrl,适用于老版本千牛使用老的callbackUrl,新版本使用新的,主要发生于breakChange后,新版本发布h5不影响线上用户 |
降级配置的sysVersion、jssdkVersion、clientVersion,全部配置表明所有规则命中才降级。
重要:key必须为qap.config.downgrade,否则该配置不生效。
key :
qap.config.downgrade
内容
[
{
"downgrade": true,
"clientVersion": [
"5.5.2",
"5.6.1"
],
"jssdkVersion": [
"1.0.2",
"1.0.4"
],
"sysVersion": [
"4.4.2",
"6.0.1"
],
"isQAP": true,
"callbackUrl": "http://www.taobao.com"
},
{
"downgrade": true,
"clientVersion": [
"5.6.2",
"5.8.1"
],
"jssdkVersion": [
"1.0.4",
"1.0.10"
],
"sysVersion": [
"4.4.2",
"6.0.1"
],
"callbackUrl": "http://www.tmall.com"
}
]
其中:
clientVersion: 可选,客户端版本,未配置表明所有版本降级,该配置的size为2,即最小版本、最大版本
jssdkVersion:可选,jssdk版本,未配置表明根据QAP默认jssdk兼容逻辑降级,该配置的size为2,即最小版本、最大版本
sysVersion:可选,手机系统版本,未配置表明参照其他降级逻辑降级,该配置的size为2,即最小版本、最大版本
ISV可以将指定用户加入到指定版本的黑名单中实现对应用户的版本回归,降级功能。
配置入口为:千牛应用平台控制台——开发工具——版本管理——-版本列表,找到那些已经对用户发布的QAP版本,点击更多—设置-填写黑名单。