uni.getLocation和wx.getLocation方法調(diào)用無效也不返回失敗的解決方案
線上已解決問題的代碼 記錄時(shí)間 2022.12.10
//獲得地理定位信息 uni.getLocation({ type: 'wgs84', success: function(resp) { console.log(11111); //保存緯度數(shù)據(jù) let latitude = resp.latitude; //保存經(jīng)度度數(shù)據(jù) let longitude = resp.longitude; console.log('經(jīng)度' + latitude); console.log('緯度' +longitude); }, fail: function(resp) { console.log(resp);} });
"permission" : { "scope.userLocation" : { "desc" : "測試" } }, "requiredPrivateInfos": ["getLocation", "chooseLocation"]
desc 的位置對應(yīng)用戶授權(quán)時(shí)候的提示
插入 代碼
簡述過程
屬實(shí)被坑了一下午。
開發(fā)微信小程序,看之前的網(wǎng)課??梢灾苯油ㄟ^一下的代碼成功打印出經(jīng)度維度。然后一樣的代碼 沒有任何反應(yīng),也不報(bào)錯(cuò)。起初以為是 微信小程序開發(fā)工具的bug。(排查未果)。后面又以為是uniapp的bug(排查未果)。
//獲得地理定位信息 uni.getLocation({ type: 'wgs84', success: function (res) { console.log('當(dāng)前位置的經(jīng)度:' + res.longitude); console.log('當(dāng)前位置的緯度:' + res.latitude); } });
最后查了微信官方的說明:https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html
兩個(gè)問題:
1.需要在app.json中進(jìn)行聲明 (解決圖里第一個(gè)問題)
解決方案:
我是用的是uniapp進(jìn)行的小程序開發(fā)需要增加配置
這里添加后打包會自動在 app.json中增加。
但是注意:?。?/p>
?。。?!坑?。?!如果只在這里勾選 會缺少這段代碼,打印fail的時(shí)候控制臺會報(bào)“
getLocation:fail the api need to be declared in the requiredPrivateInfos field in app.json/ext.json"
"requiredPrivateInfos": ["getLocation", "chooseLocation"]
增了上面這個(gè)代碼后 會提示 授權(quán)獲取定位
另外一開始我直接使用這段代碼也可以提示授權(quán)定位,但是還是會報(bào)上面的報(bào)錯(cuò)。后面試了下刪掉下面這段代碼可以 成功完成業(yè)務(wù)
uni.authorize({ scope: 'scope.userLocation', success() { uni.getLocation() } })
2.小程序后臺權(quán)限開通(解決圖里第二個(gè)問題)
小程序類目 配置
需要符合鏈接中的 主體開發(fā)類目 才能申請權(quán)限開通。
注意:服務(wù)類目最多添加5個(gè),本月可添加4次。(避免次數(shù)用完的尷尬)
點(diǎn)擊去開通,申請內(nèi)容和頁面自己去寫了。等待開通
然后等待中。說是預(yù)計(jì) 1-3個(gè)工作日
申請權(quán)限時(shí)候的坑。周五下午四點(diǎn)多申請的,五點(diǎn)多久駁回了,理由
我沒上傳圖片。描述比較簡單。
第二次申請比較快了,我上傳了圖片寫了很多描述用途
問題總結(jié):
1.微信小程序這個(gè)定位相關(guān)的api兩年來有過很多變動,查貼和視頻課中解釋的相差甚遠(yuǎn)。(所以查貼 看課要注意時(shí)間。隨著時(shí)間的增長微信的api改動很多)
2.合理使用 fail 參數(shù)打印報(bào)錯(cuò)。(不然就會認(rèn)為沒有報(bào)錯(cuò)?。。。?/p>
3.感覺微信api更改迭代的有點(diǎn)太快了。貌似uniapp和HBuilder工具已經(jīng)跟不上這些細(xì)節(jié)上的更新了。
分割線
補(bǔ)充一下:我是在個(gè)人開發(fā)者下 申請上述權(quán)限
(因?yàn)闆]法企業(yè)資質(zhì) 沒有申請企業(yè)開發(fā)者)不清楚企業(yè)開發(fā)者下 是否需要申請開通。以后有機(jī)會弄企業(yè)開發(fā)者的話再補(bǔ)充
ps:我是業(yè)余開發(fā)者,大佬勿噴。希望能解決大家的問題。
另外 網(wǎng)上的微信小程序開發(fā)的網(wǎng)課,大家要注意時(shí)間。好多微信的api接口這兩年都有變化和限制。
最后,吐槽基礎(chǔ)微信生態(tài)。常年做微信、支付寶的支付等第三方業(yè)務(wù)依賴項(xiàng)目。個(gè)人感覺微信生態(tài)的底層做得真的不如支付寶生態(tài)。各種限制和問題(奇怪的限制 奇怪的問題,浪費(fèi)好多時(shí)間去了解和解決)。審核的速度和客服電話 都不如支付寶。
到此這篇關(guān)于uni.getLocation和wx.getLocation方法調(diào)用無效也不返回失敗的解決方案的文章就介紹到這了,更多相關(guān)uni.getLocation和wx.getLocation方法調(diào)用無效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js實(shí)現(xiàn)圖片上傳到服務(wù)器和回顯
這篇文章主要介紹了js實(shí)現(xiàn)圖片上傳到服務(wù)器和回顯,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01JavaScript跨瀏覽器獲取頁面中相同class節(jié)點(diǎn)的方法
這篇文章主要介紹了JavaScript跨瀏覽器獲取頁面中相同class節(jié)點(diǎn)的方法,本文講解使用getELementsByClassName函數(shù)解決這個(gè)需求,并給了一個(gè)開源的getELementsByClassName函數(shù)實(shí)現(xiàn),功能更加強(qiáng)大,需要的朋友可以參考下2015-03-03JS關(guān)閉窗口時(shí)產(chǎn)生的事件及用法示例
這篇文章主要介紹了JS關(guān)閉窗口時(shí)產(chǎn)生的事件及用法,結(jié)合關(guān)閉窗口時(shí)提交評論的實(shí)例分析了javascript事件觸發(fā)機(jī)制及遮罩層實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-08-08實(shí)例分析JS與Node.js中的事件循環(huán)
本篇文章通過實(shí)例給大家詳細(xì)分析了JS與Node.js中的事件的原理以及用法,大家學(xué)習(xí)一下吧。2017-12-12javascript 可控式透明特效實(shí)現(xiàn)代碼
透明特效是script.aculo.us提到的特效中最簡單的特效之一。既然是特效,必須涉及時(shí)間與空間的概念。時(shí)間我們可以用setTimeout與setInterval,個(gè)人比較喜歡setTimeout,雖然它每次調(diào)用都重復(fù)注冊,但可控性比較好。2010-01-01