微信小程序出現(xiàn)wx.getLocation再次授權問題的解決方法分析
本文實例講述了微信小程序出現(xiàn)wx.getLocation再次授權問題的解決方法。分享給大家供大家參考,具體如下:
首先,在page外定義一個公共函數(shù)用于發(fā)送獲取位置的請求
var getLocation = function (that) { wx.getLocation({ type: 'wgs84', success: function (res) { // 經(jīng)緯度 var latitude = res.latitude var longitude = res.longitude var aK = that.data.aK wx.request({ url: 'https://api.map.baidu.com/geocoder/v2/?ak=' + aK + '&location=' + latitude + ',' + longitude + '&output=json', data: {}, header: { 'content-type': 'application/json' }, success: function (res) { var city = res.data.result.addressComponent.city; that.setData({ currentCity: city }) wx.request({ url: 'xxx' + city, data: {}, header: { 'content-type': 'application/json' }, success: function (res) { that.setData({ county: res.data, }) }, }) } }) }, fail: function () { wx.showToast({ title: '授權失敗', icon: 'success', duration: 1000 }) } }) }
然后,在page中需要位置調(diào)用page外部的getLocation
函數(shù)
wx.getSetting({ success: (res) => { if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {//非初始化進入該頁面,且未授權 wx.showModal({ title: '是否授權當前位置', content: '需要獲取您的地理位置,請確認授權,否則無法獲取您所需數(shù)據(jù)', success: function (res) { if (res.cancel) { that.setData({ isshowCIty: false }) wx.showToast({ title: '授權失敗', icon: 'success', duration: 1000 }) } else if (res.confirm) { wx.openSetting({ success: function (dataAu) { if (dataAu.authSetting["scope.userLocation"] == true) { wx.showToast({ title: '授權成功', icon: 'success', duration: 1000 }) //再次授權,調(diào)用getLocationt的API getLocation(that); } else { wx.showToast({ title: '授權失敗', icon: 'success', duration: 1000 }) } } }) } } }) } else if (res.authSetting['scope.userLocation'] == undefined) {//初始化進入 getLocation(that); } else { //授權后默認加載 getLocation(that); } } })
上述過程執(zhí)行順序為:
1.先加載wx.getLocation
彈出自己的授權框,如圖
然后,點擊確定即可授權,若點擊取消則取消授權,當再次需要授權時,會調(diào)用我們自定義的Modal框,如圖
其次,針對上述的Modal框點擊取消則關閉,若點擊確定則打開手機的地址授權設置,如圖
最后,若直接點擊左上方的返回箭頭則取消授權,若先選中地理位置按鈕,然后在點擊左上方的返回箭頭則授權成功,如圖
希望本文所述對大家微信小程序開發(fā)有所幫助。
相關文章
JavaScript控制輸入框中只能輸入中文、數(shù)字和英文的方法【基于正則實現(xiàn)】
這篇文章主要介紹了JavaScript控制輸入框中只能輸入中文、數(shù)字和英文的方法,基于正則驗證實現(xiàn)字符輸入限制功能,具有一定參考借鑒價值,需要的朋友可以參考下2017-03-03uniapp自定義頁面跳轉loading的實現(xiàn)代碼
有些頁面加載起來比較慢,為了加強用戶體驗效果,所以一般都會做一個頁面加載等待的提示,頁面加載完成后消失,下面這篇文章主要給大家介紹了關于uniapp自定義頁面跳轉loading的實現(xiàn)代碼,需要的朋友可以參考下2023-06-06JavaScript遍歷json對象數(shù)據(jù)的方法
這篇文章介紹了JavaScript遍歷json對象數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04JavaScript遍歷數(shù)組的三種方法map、forEach與filter實例詳解
這篇文章主要介紹了JavaScript遍歷數(shù)組的三種方法map、forEach與filter,結合實例形式詳細分析了javascript針對數(shù)組遍歷的map、forEach與filter三種方法相關操作技巧與注意事項,需要的朋友可以參考下2019-02-02JavaScript實現(xiàn)單擊網(wǎng)頁任意位置打開新窗口與關閉窗口的方法
這篇文章主要介紹了JavaScript實現(xiàn)單擊網(wǎng)頁任意位置打開新窗口與關閉窗口的方法,涉及javascript窗口的相關操作函數(shù)與使用技巧,需要的朋友可以參考下2017-09-09