關鍵詞: 微信小程序, 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~