uni.getLocation和wx.getLocation方法調用無效也不返回失敗的解決方案
線上已解決問題的代碼 記錄時間 2022.12.10
//獲得地理定位信息 uni.getLocation({ type: 'wgs84', success: function(resp) { console.log(11111); //保存緯度數據 let latitude = resp.latitude; //保存經度度數據 let longitude = resp.longitude; console.log('經度' + latitude); console.log('緯度' +longitude); }, fail: function(resp) { console.log(resp);} });
"permission" : { "scope.userLocation" : { "desc" : "測試" } }, "requiredPrivateInfos": ["getLocation", "chooseLocation"]
desc 的位置對應用戶授權時候的提示
插入 代碼
簡述過程
屬實被坑瞭一下午。
開發微信小程序,看之前的網課。可以直接通過一下的代碼成功打印出經度維度。然後一樣的代碼 沒有任何反應,也不報錯。起初以為是 微信小程序開發工具的bug。(排查未果)。後面又以為是uniapp的bug(排查未果)。
//獲得地理定位信息 uni.getLocation({ type: 'wgs84', success: function (res) { console.log('當前位置的經度:' + res.longitude); console.log('當前位置的緯度:' + res.latitude); } });
最後查瞭微信官方的說明:https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html
兩個問題:
1.需要在app.json中進行聲明 (解決圖裡第一個問題)
解決方案:
我是用的是uniapp進行的小程序開發需要增加配置
這裡添加後打包會自動在 app.json中增加。
但是註意:!!
!!!!坑!!!如果隻在這裡勾選 會缺少這段代碼,打印fail的時候控制臺會報“
getLocation:fail the api need to be declared in the requiredPrivateInfos field in app.json/ext.json"
"requiredPrivateInfos": ["getLocation", "chooseLocation"]
增瞭上面這個代碼後 會提示 授權獲取定位
另外一開始我直接使用這段代碼也可以提示授權定位,但是還是會報上面的報錯。後面試瞭下刪掉下面這段代碼可以 成功完成業務
uni.authorize({ scope: 'scope.userLocation', success() { uni.getLocation() } })
2.小程序後臺權限開通(解決圖裡第二個問題)
小程序類目 配置
需要符合鏈接中的 主體開發類目 才能申請權限開通。
註意:服務類目最多添加5個,本月可添加4次。(避免次數用完的尷尬)
點擊去開通,申請內容和頁面自己去寫瞭。等待開通
然後等待中。說是預計 1-3個工作日
申請權限時候的坑。周五下午四點多申請的,五點多久駁回瞭,理由
我沒上傳圖片。描述比較簡單。
第二次申請比較快瞭,我上傳瞭圖片寫瞭很多描述用途
問題總結:
1.微信小程序這個定位相關的api兩年來有過很多變動,查貼和視頻課中解釋的相差甚遠。(所以查貼 看課要註意時間。隨著時間的增長微信的api改動很多)
2.合理使用 fail 參數打印報錯。(不然就會認為沒有報錯!!!)
3.感覺微信api更改迭代的有點太快瞭。貌似uniapp和HBuilder工具已經跟不上這些細節上的更新瞭。
分割線
補充一下:我是在個人開發者下 申請上述權限
(因為沒法企業資質 沒有申請企業開發者)不清楚企業開發者下 是否需要申請開通。以後有機會弄企業開發者的話再補充
ps:我是業餘開發者,大佬勿噴。希望能解決大傢的問題。
另外 網上的微信小程序開發的網課,大傢要註意時間。好多微信的api接口這兩年都有變化和限制。
最後,吐槽基礎微信生態。常年做微信、支付寶的支付等第三方業務依賴項目。個人感覺微信生態的底層做得真的不如支付寶生態。各種限制和問題(奇怪的限制 奇怪的問題,浪費好多時間去瞭解和解決)。審核的速度和客服電話 都不如支付寶。
到此這篇關於uni.getLocation和wx.getLocation方法調用無效也不返回失敗的解決方案的文章就介紹到這瞭,更多相關uni.getLocation和wx.getLocation方法調用無效內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 使用微信小程序顯示用戶當前地理位置的詳細代碼
- 微信小程序開發之實現一個跑步小程序
- 微信公眾號JS-SDK獲取當前經緯度以及地址信息的方法
- 微信小程序獲取當前位置的詳細步驟
- 微信小程序實現導航功能的操作步驟