微信小程序出現(xiàn)wx.getLocation再次授權(quán)問題的解決方法分析
本文實(shí)例講述了微信小程序出現(xiàn)wx.getLocation再次授權(quán)問題的解決方法。分享給大家供大家參考,具體如下:
首先,在page外定義一個(gè)公共函數(shù)用于發(fā)送獲取位置的請(qǐng)求
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: '授權(quán)失敗', 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) {//非初始化進(jìn)入該頁面,且未授權(quán) wx.showModal({ title: '是否授權(quán)當(dāng)前位置', content: '需要獲取您的地理位置,請(qǐng)確認(rèn)授權(quán),否則無法獲取您所需數(shù)據(jù)', success: function (res) { if (res.cancel) { that.setData({ isshowCIty: false }) wx.showToast({ title: '授權(quán)失敗', icon: 'success', duration: 1000 }) } else if (res.confirm) { wx.openSetting({ success: function (dataAu) { if (dataAu.authSetting["scope.userLocation"] == true) { wx.showToast({ title: '授權(quán)成功', icon: 'success', duration: 1000 }) //再次授權(quán),調(diào)用getLocationt的API getLocation(that); } else { wx.showToast({ title: '授權(quán)失敗', icon: 'success', duration: 1000 }) } } }) } } }) } else if (res.authSetting['scope.userLocation'] == undefined) {//初始化進(jìn)入 getLocation(that); } else { //授權(quán)后默認(rèn)加載 getLocation(that); } } })
上述過程執(zhí)行順序?yàn)椋?/p>
1.先加載wx.getLocation
彈出自己的授權(quán)框,如圖
然后,點(diǎn)擊確定即可授權(quán),若點(diǎn)擊取消則取消授權(quán),當(dāng)再次需要授權(quán)時(shí),會(huì)調(diào)用我們自定義的Modal框,如圖
其次,針對(duì)上述的Modal框點(diǎn)擊取消則關(guān)閉,若點(diǎn)擊確定則打開手機(jī)的地址授權(quán)設(shè)置,如圖
最后,若直接點(diǎn)擊左上方的返回箭頭則取消授權(quán),若先選中地理位置按鈕,然后在點(diǎn)擊左上方的返回箭頭則授權(quán)成功,如圖
希望本文所述對(duì)大家微信小程序開發(fā)有所幫助。
相關(guān)文章
JavaScript動(dòng)態(tài)生成二維碼圖片
本文給大家介紹js動(dòng)態(tài)生成二維碼圖片的相關(guān)內(nèi)容,感興趣的朋友一起學(xué)習(xí)吧2016-04-04JavaScript控制輸入框中只能輸入中文、數(shù)字和英文的方法【基于正則實(shí)現(xiàn)】
這篇文章主要介紹了JavaScript控制輸入框中只能輸入中文、數(shù)字和英文的方法,基于正則驗(yàn)證實(shí)現(xiàn)字符輸入限制功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03uniapp自定義頁面跳轉(zhuǎn)loading的實(shí)現(xiàn)代碼
有些頁面加載起來比較慢,為了加強(qiáng)用戶體驗(yàn)效果,所以一般都會(huì)做一個(gè)頁面加載等待的提示,頁面加載完成后消失,下面這篇文章主要給大家介紹了關(guān)于uniapp自定義頁面跳轉(zhuǎn)loading的實(shí)現(xiàn)代碼,需要的朋友可以參考下2023-06-06JavaScript遍歷json對(duì)象數(shù)據(jù)的方法
這篇文章介紹了JavaScript遍歷json對(duì)象數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04JavaScript遍歷數(shù)組的三種方法map、forEach與filter實(shí)例詳解
這篇文章主要介紹了JavaScript遍歷數(shù)組的三種方法map、forEach與filter,結(jié)合實(shí)例形式詳細(xì)分析了javascript針對(duì)數(shù)組遍歷的map、forEach與filter三種方法相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-02-02JavaScript實(shí)現(xiàn)單擊網(wǎng)頁任意位置打開新窗口與關(guān)閉窗口的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)單擊網(wǎng)頁任意位置打開新窗口與關(guān)閉窗口的方法,涉及javascript窗口的相關(guān)操作函數(shù)與使用技巧,需要的朋友可以參考下2017-09-09JS實(shí)現(xiàn)給數(shù)組對(duì)象排序的方法分析
這篇文章主要介紹了JS實(shí)現(xiàn)給數(shù)組對(duì)象排序的方法,結(jié)合實(shí)例形式分析了javascript數(shù)組對(duì)象排序相關(guān)實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2019-06-06