關於小程序opensetting廢棄後地理位置的二次授權
阿新 • • 發佈:2018-08-27
只需要 隱藏 clas category str 界面 false long 重要
由於小程序為了客戶體驗,在用戶首次拒絕授權後,彈窗短時間內將不會再出現。然而此時可能有些需要經緯度的重要數據就無法調取,因此需要引導客戶去再次授權。目前發現能夠吊起授權彈框的有wx.getLocation、 wx.authorize但是用戶拒絕後短期內調用這些api也不會出現授權彈框了。
現如今opensetting也已經廢棄
<button hidden=‘{{!hiddenLoading}}‘ open-type="openSetting" bindopensetting=‘handler‘ class=‘getLocation‘>請先授權</button>這段代碼可以使用戶進入授權界面再度授權,而上面的按鈕則可以通過用戶是否授權來進行顯示或者隱藏(hiddenLoading)
此時我們只需要在handle裏再次調用該函數即可
handler:function(){
this.getAuthor();
},
getLoaction() {
const that = this;
wx.getLocation({
type: ‘gcj02‘,
success: function(res) {
// console.log(‘success‘)
latitude = res.latitude;
longitude = res.longitude;
that.categoryList();/*這是我通過經緯度調取數據的函數*/
that.setData({
hiddenLoading: false
});
},
fail: function() {
// console.log(‘fail‘);
wx.hideLoading();
that.setData({
hiddenLoading: true
})
}
})
},
因為本人小程序這方面所需要面對的情況也不多,所以並沒有寫太多的判斷。不管授權是否,handler函數都會執行!會調動getLocation。倘若此時已經授權,便可以獲取到經緯度調取數據,否則按鈕仍然存在。
關於小程序opensetting廢棄後地理位置的二次授權