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!

推薦閱讀: