微信小程序--兼容

小程序的功能不断的增长,可是旧版本的微信客户端并不支持新功能,因此在使用这些新能力的时候须要作兼容。html

文档会在组件,API等页面描述中带上各个功能所支持的版本号。小程序

能够经过 wx.getSystemInfo 或者 wx.getSystemInfoSync 获取到小程序的基础库版本号。api

也能够经过 wx.canIUse 详情 来判断是否能够在该基础库版本下直接使用对应的API或者组件微信

兼容方式 - 版本比较

微信客户端和小程序基础库的版本号风格为 Major.Minor.Patch(主版本号.次版本号.修订号)。 开发者能够根据版本号去作兼容,如下为参考代码:ide

function compareVersion(v1, v2) { v1 = v1.split('.') v2 = v2.split('.') var len = Math.max(v1.length, v2.length) while (v1.length < len) { v1.push('0') } while (v2.length < len) { v2.push('0') } for (var i = 0; i < len; i++) { var num1 = parseInt(v1[i]) var num2 = parseInt(v2[i]) if (num1 > num2) { return 1 } else if (num1 < num2) { return -1 } } return 0 } compareVersion('1.11.0', '1.9.9') // 1

兼容方式 - 接口

对于新增的 API,能够用如下代码来判断是否支持用户的手机。spa

if (wx.openBluetoothAdapter) { wx.openBluetoothAdapter() } else { // 若是但愿用户在最新版本的客户端上体验您的小程序,能够这样子提示
 wx.showModal({ title: '提示', content: '当前微信版本太低,没法使用该功能,请升级到最新微信版本后重试。' }) }

兼容方式 - 参数

对于 API 的参数或者返回值有新增的参数,能够判断用如下代码判断。code

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

兼容方式 - 组件

对于组件,新增的组件或属性在旧版本上不会被处理,不过也不会报错。若是特殊场景须要对旧版本作一些降级处理,能够这样子作。htm

Page({ data: { canIUse: wx.canIUse('cover-view') } })
<video controls="{{!canIUse}}">
  <cover-view wx:if="{{canIUse}}">play</cover-view>
</video>
相关文章
相关标签/搜索