小程序开放平台

文档中心
起步
目录
配置小程序
小程序框架
小程序运行时
自定义组件
基础能力
开放能力
性能优化
转发
事件回调
基础库
介绍
低版本兼容
调试
数据分析
服务端调试

低版本兼容

开发
>
指南
>
基础库
>
低版本兼容
>
更新时间:2024-11-28 15:00:08

兼容

小程序的功能不断的增加,但是就版本的小红书客户端并不支持新功能,所以在使用这些新能力的时候需要做兼容。 开发者可以通过以下方式进行低版本的兼容:

版本号比较

小程序基础库的版本号风格为 major.minor.patch。 文档中会在组件,API 等页面描述中带上各个功能所要求的最低基础库版本号。 开发者可以在小程序中通过调用 xhs.getSystemInfo 或者 xhs.getSystemInfoSync 获取到当前小程序运行的基础库的版本号。通过版本号比较的方式进行运行笛版本兼容逻辑。 版本号比较适用于所有情况。部分场景下也可以使用后面提到的方法完成。

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

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

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('1.11.0', '1.9.9') 
const version = xhs.getSystemInfoSync().SDKVersion

if (compareVersion(version, '1.1.0') >= 0) {
  xhs.openBluetoothAdapter()
} else {
  // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
  xhs.showModal({
    title: '提示',
    content: '当前小红书版本过低,无法使用该功能,请升级到最新小红书版本后重试。'
  })
}

API 存在判断

对于新增的 API,可以通过判断该 API 是否存在来判断是否支持用户使用的基础库版本。例如:

if (xhs.openBluetoothAdapter) {
  xhs.openBluetoothAdapter()
} else {
  // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
  xhs.showModal({
    title: '提示',
    content: '当前小红书版本过低,无法使用该功能,请升级到最新小红书版本后重试。'
  })
}

xhs.canIUse

除了直接通过版本号判断,也可以通过 xhs.canIUse 来判断是否可以在该基础库版本下直接使用。例如:

API 参数或返回值

对于 API 的参数或者返回值有新增的参数,可以判断用以下代码判断。

xhs.showModal({
  success: function(res) {
    if (xhs.canIUse('showModal.success.cancel')) {
      console.log(res.cancel)
    }
  }
})
组件

对于组件,新增的组件或属性在旧版本上不会被处理,不过也不会报错。如果特殊场景需要对旧版本做一些降级处理,可以这样子做。

设置最低基础库版本

注意:用户进入小红书时,App版本低于设置的最低基础库 小红书会自动提示升级。这个升级提示是强提示,用户不能跳过。一般严重 bug 才建议进行基础库版本设置

对于服务商,提供 API 快捷通道,进行设置

为便于开发者解决低版本基础库无法兼容小程序的新功能的问题,开发者可设置小程序最低基础库版本要求。 开发者可以登录专业号平台,进入「店铺 - 小程序基础设置 - 基础库最低版本设置」进行配置。

设置后,若用户基础库版本低于设置值,则无法正常打开小程序,并提示用户更新客户端版本。