wx.getSetting({ success(res) { console.log('wx.getSetting:', res) /** * res.authSetting['scope.userLocation'] === true 贊成過受權 * res.authSetting['scope.userLocation'] === false 拒絕過受權 * res.authSetting['scope.userLocation'] === undefined 從未贊成或者拒絕過受權 */ if (res.authSetting['scope.userLocation'] === undefined) { wx.authorize({ scope: 'scope.userLocation', success (res) { console.log('authorize success:', res) }, }) }else if (res.authSetting['scope.userLocation'] === false) { wx.showModal({ title: '', content: '去小程序設置頁面設置balabala', showCancel: true, cancelText: '取消', cancelColor: '#000000', confirmText: '肯定', confirmColor: '#3CC51F', success: (result) => { if(result.confirm){ wx.openSetting({ success (res) { console.log('wx.openSetting success:', res.authSetting) }, fail: (err)=>{ console.log('wx.openSetting fail:', err) }, complete: (info)=>{ console.log('wx.openSetting complete:', info) }, }) } }, }) } else { wx.getLocation({ type: 'wgs84', success (res) { console.log('wx.location success:', res) }, fail (err) { console.log('wx.location fail:', err) }, complete(aa) { console.log('wx.location complete:', aa) }, }) } }, })
受權彈窗
去設置彈窗html
一、wx.openSettingjson
- 3.0 版本開始,用戶發生點擊行爲後,才能夠跳轉打開設置頁,管理受權信息 - 真機調試才能打開設置頁面 - 只會顯示小程序已經向用戶申請過的權限
二、wx.getSetting小程序
返回值中只會出現小程序已經向用戶申請過的權限
三、app.json文件中配置位置信息的用途說明微信小程序
"permission": { "scope.userLocation": { "desc": "您的位置信息將用於定位" } }
四、彈窗出現機制api
- 一旦用戶選擇了拒絕或者容許該權限,那麼受權關係就會被記錄在後臺,直到用戶主動刪除小程序,以後再次調用該API時都不會再彈出權限申請框。 - 解決方式:對於用戶拒絕受權的狀況調用wx.openSetting跳轉小程序設置頁面,引導用戶手動開啓該權限