日漸增多的小程序需求,必然會存在形色各異的授權問題。今天就來跟大家一起學習一下如何玩轉小程序的位置授權
App({ config: { 'permission': { 'scope.userLocation': { 'desc': '請開啟位置授權' // 高速公路行駛持續(xù)后臺定位 } }, } }) 復制代碼
Page({ onLoad () { wx.getLocation({ success: (res) => {}, // 成功的回調 fail: (err) => {} // 失敗的回調 }) } }) 復制代碼
$invoke('LocationAuthModal', showModal): 通過對LocationAuthModal組件中的方法直接調用,在頁面中彈出提示彈窗,效果如下(LocationAuthModal組件是我們自定義的彈窗,并且在頁面中引用)
Button(open-type=”openSetting” bindopensetting=callback): 小程序基礎庫2.3.0版本開始,用戶發(fā)生點擊行為后,才可以跳轉打開setting頁面,管理設置授權信息。在完成設置后,在callback中獲取到授權auth進行處理:
<button open-type="openSetting" @opensetting="callback">設置</button> 復制代碼
callback: 設置完成后的回調函數(shù)
setting: 小程序的設置
auth: 設置完成后獲取到的設置授權信息
auth[“scope.userLocation”] = true:開啟了位置授權的設置,可以直接通過wx.getLocation拿到位置信息
else: 仍未開啟位置授權,那么根據我們的需求是不能繼續(xù)讓用戶使用的,所以會繼續(xù)執(zhí)行$invoke('LocationAuthModal', showModal),強制提醒用戶開啟位置授權
suceeCallback: 成功獲取位置后的回調函數(shù),用來處理獲取到微信知悉后的操作