小程序中用戶點擊拒絕定位權限時,需要進行一些列符合業務邏輯的提示,使用戶重新給予權限:
①在獲取定位的fail回調函數中給一個提示,以逆地址解析為例:
loadLocation(){ qqmapsdk=new QQMapWX({ key:"" }); qqmapsdk.reverseGeocoder({ success:(res)=>{ }, fail:(err)=>{ this.setData({ cityname:"定位失敗,點擊重試" }) } }) }
②在data中聲明判斷位置是否加載成功的變量(boolean)默認false,並在獲取定位的回調函數中進行邏輯判斷,success->true fail->false;
③在需要基於位置進行事件處理的函數中進行必要的邏輯判斷,變量為true執行操作,否則重新執行定位;
④彈窗提示用戶沒有權限(這里可以有其他的解決方案,具體看業務需求):
// 彈窗提示用戶沒有權限, wx.showModal({ title:"提示", content:"獲取當前位置需要授權,是否跳轉到設置界面?", success:(res)=>{ if(res.confirm){ // 執行跳轉,到設置界面 wx.openSetting({ success:(settingRes)=>{ // console.log(settingRes); if(settingRes.authSetting['scope.userLocation']){ this.loadLocation(); } } }) } } })
至此定位失敗的一套邏輯基本實現了,小白寫項目,有很多不足之處,如果有更好的解決方案,歡迎大家交流