2026-08-09 17:23:03 世界杯冠军教练

# 版本兼容 更新时间:2024-08-16 16:36:06

小程序的能力不断发展,旧版本的客户端无法支持新增加的能力,在使用新能力前需要做版本兼容。

可以通过以下方式进行版本兼容:

# 1 版本号比较 快手小程序基础库版本号遵循Semver规范,即Major.Minor.Patch(主版本号.次版本号.修订版本号)。

文档中会在组件,API等页面描述中带上各个功能所要求的最低基础库版本号。

开发者可以在小程序中通过调用ks.getSystemInfoSync (opens new window)获取到当前小程序运行的基础库的版本号。

版本比较代码

function compareVersion(versionA, versionB) {

// 分割版本号为数组 [MAJOR, MINOR, PATCH]

const splitVersion = (version) => {

return version.split('.').map(num => parseInt(num, 10));

};

const aParts = splitVersion(versionA);

const bParts = splitVersion(versionB);

// 确保两个版本号有相同的长度,用0填充较短的部分

const maxLength = Math.max(aParts.length, bParts.length);

while (aParts.length < maxLength) aParts.push(0);

while (bParts.length < maxLength) bParts.push(0);

// 比较每一部分

for (let i = 0; i < maxLength; i++) {

if (aParts[i] > bParts[i]) return 1;

if (aParts[i] < bParts[i]) return -1;

}

// 如果所有部分都相等,则版本号相等

return 0;

}

// 测试函数

console.log(compareVersion('1.0.0', '2.0.0')); // 输出 -1

console.log(compareVersion('1.0.0', '1.0.0')); // 输出 0

console.log(compareVersion('1.29.0', '1.3.0')); // 输出 1

复制const version = ks.getSystemInfoSync()?.SDKVersion

if (compareVersion(version, '1.64.0') >= 0) {

ks.openLocation()

} else {

// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示

ks.showModal({

title: '提示',

content: '当前客户端版本过低,无法使用该功能,请升级到最新版本后重试。'

})

}

复制# 2 ks.canIUse 除了直接通过版本号判断,也可以通过 ks.canIUse (opens new window) 来判断是否可以在该基础库版本下直接使用。例如:

// 对象的属性或方法

ks.canIUse('console.log');

ks.canIUse('CameraContext.onCameraFrame');

ks.canIUse('CameraFrameListener.start');

// ks接口参数、回调或者返回值

ks.canIUse('getSystemInfoSync.return.safeArea.left');

ks.canIUse('getSystemInfo.success.screenWidth');

ks.canIUse('showToast.object.image');

ks.canIUse('onCompassChange.callback.direction');

ks.canIUse('request.object.method.GET');

// 组件的属性

ks.canIUse('text.selectable');

ks.canIUse('button.open-type.contact');

复制# 3 设置最低基础库版本 如希望全量用户都可使用小程序新功能,开发者可设置小程序最低基础库版本。

开发者可以登录小程序开发者平台 (opens new window),进入“基础设置-基本设置-账号信息”进行配置。在配置前,开发者可查看不同基础库版本对应的用户可用率,用以评估升级基础库带来的影响。

若用户使用的基础库版本低于设置的最低版本要求,则无法正常使用小程序,并提示更新快手版本