小程序兼容方法

小程序的功能不断的增加,但是旧版本的客户端并不支持新功能,所以在使用这些新能力的时候需要做兼容。

开发者可以通过以下方式进行低版本的兼容:

版本号比较

客户端(天翼云盘 App / 小翼管家 App / 桌面开发者工具)和小程序基础库的版本号风格为 Major.Minor.Patch(主版本号.次版本号.修订版本号)。

API 文档页面描述中带上各个功能所要求的最低客户端版本号。

开发者可以在小程序中通过调用 ok.getSystemInfo() 或者 ok.getVersion() 获取到当前小程序 运行环境 的各种版本号。通过版本号比较的方式进行运行低版本兼容逻辑。

版本号比较适用于所有情况。部分场景下也可以使用后面提到的方法完成。

注意:不要直接使用字符串比较的方法进行版本号比较。

版本号比较可以参考以下代码:

function compareVersion(v1, v2) {
v1 = v1.split(".");
v2 = v2.split(".");
const len = Math.max(v1.length, v2.length);

while (v1.length < len) {
v1.push("0");
}
while (v2.length < len) {
v2.push("0");
}

for (let i = 0; i < len; i++) {
const num1 = parseInt(v1[i]);
const num2 = parseInt(v2[i]);

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

return 0;
}

compareVersion("8.8.0", "8.7.3"); // 1

API 存在判断

通过 ok.canIUse() 来判断是否可以在该基础库版本下直接使用

ok.canIUse("chooseLocalImage").then((res) => {
const canUse = res.data.result;
// API 不可用或不存在
if (!canUse) {
ok.showModal({
title: "提示",
content: "当前客户端版本过低,无法使用该功能,请升级到最新版本后重试。",
});
}
});
  1. 1. 小程序兼容方法
    1. 1.1. 版本号比较
    2. 1.2. API 存在判断