小程序的功能不断的增加,但是旧版本的微信客户端并不支持新功能,所以在使用这些新能力的时候需要做兼容。
文档会在组件,API等页面描述中带上各个功能所支持的版本号。
可以通过wx.getSystemInfo或者wx.getSystemInfoSync获取到小程序的基础库版本号。
兼容方式 - 接口
对于新增的 API,可以用以下代码来判断是否支持用户的手机。
if(wx.openBluetoothAdapter) { wx.openBluetoothAdapter()}else{// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示wx.showModal({ title:'提示', content:'当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'})}
兼容方式 - 参数
对于 API 的参数或者返回值有新增的参数,可以判断用以下代码判断。
constSDKVersion = wx.getSystemInfoSync().SDKVersion ||'1.0.0'const[MAJOR, MINOR, PATCH] = SDKVersion.split('.').map(Number)constcanIUse = apiName => {if(apiName ==='showModal.cancel') {returnMAJOR >=1&& MINOR >=1}returntrue}wx.showModal({ success:function(res){if(canIUse('showModal.cancel')) {console.log(res.cancel) } }})
兼容方式 - 组件
对于组件,新增的属性在旧版本上不会被处理,不过也不会报错。如果特殊场景需要对旧版本做一些降级处理,可以这样子做。
Page({ data: { canIUse: canIUse('button.open-type.contact') }})
客服消息