小程序地理位置授權邏輯(包括二次授權)


首次授權直接調用wx.getLocation();方法,如果用戶點擊允許  則在success回調里返回地理位置信息,並且在不清除授權數據的情況下,以后再次調用wx.getLocation();方法  不會出彈窗  直接走success  
 
如果用戶在首次彈窗是選擇 拒絕 則在fail回調中返回  { errMsg:"getLocation:fail auth deny"},並且在不清除授權數據的情況下,以后再次調用wx.getLocation();方法 不會出彈窗  直接走fail
 
 
所以正確授權邏輯 應該是:

1、進入頁面先通過wx.getSetting();判斷用戶是否授權以及授權成功與否
    a>如果沒有地理位置的相關字段表示沒有授權  -- 調起首次授權
    b>如果返回scope.userLocation: true,表示授權成功  則直接在success拿地理位置信息
    c>如果返回scope.userLocation: false,表示拒絕授權  
         則需要用戶點擊按鈕   手動去設置允許獲取地位置   返回主頁面時  
         aa>允許 則返回 scope.userLocation: true,再次調用  wx.getLocation();方法  走success   返回地理位置信息
         bb>拒絕 則返回scope.userLocation: false,  
 
 
2、
產品流程:
      首次進入頁面        調起wx.getLocation();彈窗授權     
      允許?   直接拿地理位置信息
      拒絕?   出一個按鈕二次授權  方便用戶手動設置
3、打開地圖和選擇地理位置
 
 
 

二、打開小程序設置(wx.openSetting())的調用方式(2018-09-12日調整)
1、使用button組件觸發
代碼:<button open-type="openSetting" bindopensetting="callback">打開設置</button>
2、有用戶的點擊行為觸發wx.openSetting();接口調用;
代碼:<button bindtap="openSetting">打開設置</button> openSetting(){wx.openSetting()}
其中:方法2已在最新開發者工具中支持(基礎庫切到2.2.4以上)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM