关键词: 微信小程序, API, 低版本, 兼容
小程序的功能不断的增加,但是旧版本的微信客户端并不支持新功能,所以在使用这些新能力的时候需要做兼容。
文档会在组件,API等页面描述中带上各个功能所支持的版本号。
可以通过 wx.getSystemInfo 或者 wx.getSystemInfoSync 获取到小程序的基础库版本号。
也可以通过 wx.canIUse 详情 来判断是否可以在该基础库版本下直接使用对应的API或者组件
在处理小程序的时候 往往需要授权操作, 而如果未授权的情况下又会很尴尬的发现没法重新授权啊(除非删除小程序或者等待一段时间授权超时之后可以重新授权), 而我刚好又碰到了另外一种情况.部分安卓手机无法弹出授权提示(登录未发现.主要体现在授权收货地址)
找了一圈发现了向下兼容的 api
bindViewAds:function(){
console.log("点击地址");
var that = this;
// 检查是否可以调用地址
if (wx.canIUse('chooseAddress')) {
} else {
// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
wx.showModal({
title: '提示',
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
})
return;
}
wx.chooseAddress({
success: function (res) {
// console.log("获取地址信息",res);
// console.log(res.userName)
// console.log(res.postalCode)
// console.log(res.provinceName)
// console.log(res.cityName)
// console.log(res.countyName)
// console.log(res.detailInfo)
// console.log(res.nationalCode)
// console.log(res.telNumber)
},
fail: function (res) {
console.log("点击地址调用失败", res);
wx.getSetting({
success: (res) => {
if (!res.authSetting["scope.address"]) {
//这里是授权成功之后 填写你重新获取数据的js
//参考:
wx.showModal({
title: '提示',
content: '您未授权获取地址信息,请点击确定后同意获取地址信息',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定')
// 微信跳转授权页面进行操作
wx.openSetting({
success: (res) => {
}
})
}
}
})
}
}
})
}
})
},
一段又臭又长的代码,在这里指示为了给出参考方案,欢迎吐槽代码写法 O(∩_∩)O~
网友评论