uni-app微信小程序GPS位置獲取爬坑
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
前情uni-app是我比較喜歡的跨平臺框架,它能開發小程序/H5/APP(安卓/iOS),重要的是對前端開發友好,自帶的IDE讓開發體驗也挺棒的,現在所在公司項目有抖音、快手、微信、支付、APP端,就是使用uni-app來開發的。 坑位最近接手的項目是需要在下單前獲取用戶所有位置的GPS信息,再服務端會根據當前用戶的GPS信息來判定是否給當前用戶一定優惠。本以為就是調用一個API的事,但當你直接調用的時候你會發現根本無法使用。 Why?位置信息屬于用戶隱私,從23年9月開始如果小程序需要獲取位置信息需要去小程序管理后臺:開發與服務-開發管理-接口設置-接口權限頁申請地理位置api權限方才能使用。 解決方案STEP 1:申請權限 開發與服務-開發管理-接口設置-接口權限申請權限,這里又有一小坑,微信提供了二個獲取位置的接口
在申請地理位置獲取api權限的時候,你需要填二項必填項,申請理由和場景說明,官方有提供申請成功的案例 我第一感覺是申請支持高精度定位的wx.getLocation,模精定位特有接口能做的支持高精度定位也一定能實現需求,于是我就申請了wx.getLocation接口,同時針對場景截了圖提交了申請,一天后發現申請不通過,于是又完善了資料再次提交又碰壁了,二天二次申請都被打回,一臉蒙逼。 搜了論壇都是說申請全被拒的,用模糊定位接口又不準,后面問了產品,我們只需要定位到市區級別行不行,產品說可以的,不用那么精確,于是轉而申請wx.getFuzzyLocation,半小時時間未到就收到申請通過的短信提醒(懷疑是機審,走個過場,哈哈哈) 所以在申請接口前要跟產品確認好對于gps位置的精度要求,如果模糊定位能實現那就不要去折騰申請高精度定位的接口了,微信對wx.getLocation接口管理的比較嚴格,如果你確實需要高精度接口,那你就按官方提供的參考申請案例補充資料再申請吧,但是從論壇里的抱怨來看申請可能不是那么容易,如果你要申請那就多費點心吧,在此祝好。 STEP 2:填寫接口權限配置 申請接口了并不就是說你就能直接調用了,你需要去app.json里補全位置權限獲取說明描述和對應的接口權限注明
如果你是使用uni-app的話,你直接用hbuilderx以源碼視圖方式打開manifest.json文件,找到mp-weixin微信項配置按如下配置好 STEP 3:接口調用 查了uni-app官方文擋都沒有找到uni.getFuzzyLocation接口的說明,但是你在調用的時候是可以調用的,如果你實在不放心,可以直接使用wx.getFuzzyLocation接口。 接口調用注意事項: 你調用uni/wx.getFuzzyLocation的時候如果沒有授過權會彈出授權的提示彈框,只有用戶同意了才能獲取地理位置信息,這里如果用戶拒絕就無法再次喚起授權彈框,微信會記住授權狀態,所以這里如果用戶選了同意,那就萬事大吉了,但是如果用戶選擇了拒絕,那后面就一直無法再獲取用戶位置信息了。 如果你獲取用戶的位置是可有可無的,你可以把位置信息當可選項,用戶不同意你就不上傳即可,但是如果你需求是位置信息是必需要的,那這里你需要做一些引導,引導用戶去開啟權限,對于引導你又要注意二種情況,一種是小程序位置授權沒開啟,另一種是微信APP位置權限沒開啟,下面是關鍵代碼:
注:查了微信官方文擋,并沒有對應的錯誤提示說明,我是多次測試發現的上面的錯誤提示加入的判斷,如果你有官方的錯誤提示說明文擋鏈接,歡迎分享出來,謝謝了。 總結使用微信的地理位置接口分三步
?轉自https://www.cnblogs.com/xwwin/p/18619824 該文章在 2024/12/23 16:17:38 編輯過 |
關鍵字查詢
相關文章
正在查詢... |