关于小程序授权地理位置(wx.getLocation + 用户体验)
生活随笔
收集整理的這篇文章主要介紹了
关于小程序授权地理位置(wx.getLocation + 用户体验)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
?
wx.getLocation 如果用戶曾點擊過一次 “確認授權” ,?
那么再次調用該接口時將不會出現彈出框(可以直接拿到經緯度)
?
?
關于用戶體驗:
?
在 onLoad 中判斷:
如果用戶之前“沒有觸發過“授權地理位置事件,則發起請求授權-----> 如果同意授權,直接拿到經緯度處理邏輯;
如果不同意,則彈出自定義模態框進行提示,如果用戶同意就打開setting頁面;如果還不同意,就執行默認事件(用戶不授權的邏輯)
?
wx.getSetting({success: function(res){if (typeof (res.authSetting['scope.userLocation']) == "undefined") { // 從未觸發過授權的情況wx.getLocation({ // 用戶同意授權地理位置success: function (res) {that.setData({latitude: res.latitude,longitude: res.longitude});that.getShopInfo_nearby(res.latitude, res.longitude);},fail: function (err) { // 用戶拒絕授權地理位置wx.showModal({//彈出模態框,詢問title: '是否授權當前位置',content: '如需正常使用本程序,請按確定并在授權管理中選中“地理位置”,然后點按返回即可正常使用。',cancelColor: '#f00',success: function (res) {if (res.confirm) {//同意授權wx.openSetting({})} else if (res.cancel) {//不同意授權,進行普通查詢mac = '08:D8:33:7C:5E:5';that.getShopInfo(mac);}}})}})}}})?
?
在 onShow 中:先檢查用戶授權狀態,如果“曾經觸發過“地理位置授權事件,但沒有確認授權,就彈出自定義模態框進行詢問(同意->setting頁面; 不同意-> 走不同意的邏輯);
如果授權過了,則直接使用wx.getLocation 獲取經緯度拿到經緯度處理邏輯(此時不會再觸發彈框)
?
?
wx.getSetting({//檢測用戶權限success: (res) => {if (res.authSetting['scope.userLocation'] == false) { // 地理位置授權 觸發過但沒有授權wx.showModal({//彈出模態框,詢問title: '是否授權當前位置',content: '如需正常使用紫燕到家設備,請按確定并在授權管理中選中“地理位置”,然后點按返回即可正常使用。',cancelColor: '#f00',success: function (res) {if (res.confirm) {//同意授權wx.openSetting({})} else if (res.cancel) {//不同意授權,進行普通查詢mac = '08:D8:33:7C:5E:5';that.getShopInfo(mac);}}})} else if (res.authSetting['scope.userLocation'] == true){ // 地理位置授權過了wx.getLocation({success: function(res) {that.getShopInfo_nearby(res.latitude, res.longitude);},})}}})?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1
轉載于:https://www.cnblogs.com/Skate0rDie/p/11452674.html
總結
以上是生活随笔為你收集整理的关于小程序授权地理位置(wx.getLocation + 用户体验)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP 接口输出 图片
- 下一篇: idea自定义快捷鍵