开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
native 渲染
性能与优化
小程序全局配置
小程序页面
axml
sjs 语法参考
事件系统
自定义组件
基础能力
基础库
基础库更新日志
开发 > 框架 > 兼容
收藏
订阅更新
我的文档
设置
小程序基础库minor/patch 位的升级会带来 基础组件 / api 接口 / 运行时特性 等功能的新增和优化,开发者可以通过以下方式进行低版本的判断和兼容。
版本号判断
小程序基础库的版本号和客户端的版本号格式均为 major.minor.patch 字符串,在组件、api 等页面描述中需要包含各个功能所需求的最低基础库版本号或者客户端版本号。
开发者可以通过以下方式获取当前的基础库版本号和客户端版本号:
javascript
复制代码
/**
* @description 基础库版本
* @example "2.6.8"
*/
const sdkversion = my.sdkversion;
/**
* @description 客户端版本
* @example "10.2.15"
*/
const clientversion =
my.env.clientversion || // 基础库 1.24.10 及以上,基础库 2.4.10 及以上存在该属性
my.getsysteminfosync().clientversion;
关于 x.y.z 形式 . 分隔数字字符串的判断函数,有如下示例:
javascript
复制代码
/**
* @param {string} v1
* @param {string} v2
* @returns {-1 | 0 | 1}
*/
function compareversion(v1, v2) {
var s1 = v1.split(".");
var s2 = v2.split(".");
var len = math.max(s1.length, s2.length);

for (let i = 0; i < len; i) {
var num1 = parseint(s1[i] || "0");
var num2 = parseint(s2[i] || "0");

if (num1 > num2) {
return 1;
} else if (num1 < num2) {
return -1;
}
}

return 0;
}

// v1 > v2 则返回值为 1
1 === compareversion("2.6.8", "1.24.10");

// v1 = v2 则返回值为 0
0 === compareversion("2.6", "2.6.0");
caniuse 检测
基础库提供了 my.caniuse 接口,可用于以下各类兼容性判断。
新增 api 兼容性处理
对于新增 api,可以参照以下代码来判断当前基础库是否支持该 api:
新增 api 参数检测
对于现有 api 新增的入参,可以参照以下示例代码进行判断:
新增 api 返回值检测
对于现有 api 新增了返回值,可以参照以下代码来判断:
新增基础组件属性检测
对于现有基础组件新增属性,在低版本基础库上会静默忽略该属性,针对性降级处理可参照以下代码:
.js 示例代码:
.axml示例代码:
设置最低基础库版本
为解决低版本基础库无法兼容小程序新功能的问题,开发者可设置小程序最低基础库版本要求。 登录 > 进入对应小程序详情页 > 小程序信息 > 基础设置,可设置小程序的最低基础库版本。若小程序用户使用的基础库版本低于设置的最低版本要求,则无法正常使用小程序,并将提示用户更新支付宝版本。设置版本号后,小程序需重新发版才会生效。

点击 最低基础库版本, 对应的 设置 按钮,可看到不同的最低基础库版本对应的受影响用户 uv 占比,即近 30 天内访问小程序的用户的基础库版本小于所选版本的占比。开发者可据此设置小程序的最低基础库版本。 选中需设置为最低基础库版本的版本号,点击 确定 按钮,即设置成功。

此时,最低基础库版本 设置项对应的状态变为 已设置

常见问题
q:小程序 api 如果不兼容该怎么处理?
a:可以使用 my.caniuse(string) 做兼容判断,如果需要可以使用 my.ap.updatealipayclient 对支付宝端进行提示升级。
相关文档

my.caniuse
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图