衆所周知,小程序進入首先都要進行微信受權的,那萬一用戶不當心點了拒絕按鈕怎麼辦呢?不要慌,官方早已預料到此狀況,並提供了api供開發者使用,下面就一塊兒來研究下api吧小程序
1、API接口api
wx.openSetting(OBJECT)
調起客戶端小程序設置界面,返回用戶設置的操做結果。
注:設置界面只會出現小程序已經向用戶請求過的權限。
wx.getSetting(OBJECT)
獲取用戶的當前設置。
注:返回值中只會出現小程序已經向用戶請求過的權限。
2、API調用順序微信
首先要知道我們解決的問題是什麼,其次纔是怎麼解決問題。app
須要解決的問題:用戶拒絕受權,在須要其受權的信息的頁面打開受權,讓用戶再次進行受權(ps:表達能力有限)spa
分析問題:1.拒絕受權;2.再次受權code
1:既然已拒絕受權,那麼確定已經調用了wx.getUserInfo()方法,那麼先看下這個api吧blog
wx.getUserInfo({ success: function (res) {//用戶贊成受權時返回的數據 var userInfo = res.userInfo wx.setStroageSync('userInfo', userInfo)//獲app.userInfo = userInfo var nickName = userInfo.nickName var avatarUrl = userInfo.avatarUrl var gender = userInfo.gender //性別 0:未知、1:男、2:女 var province = userInfo.province var city = userInfo.city var country = userInfo.country }, fail: function (ret) {//用戶拒絕受權時的操做 // } })
2.再次受權接口
// 在須要用戶受權時調用wx.getSetting() wx.getSetting({ success: function (res) { if (res.authSetting["scope.userInfo"]) {//用戶已受權 wx.getUserInfo({ success: function (data) { var scopeData = data.userInfo; wx.setStorageSync('userInfo', scopeData); } }) } else {//用戶未受權 // 能夠添加個提示信息,在這裏就我就不寫了哈 wx.openSetting({//打開小程序設置頁面,用戶本身選擇受權 success: function (res) { res.authSetting = { "scope.userInfo": true } } }) } } })
3.注ci
最後一點要注意,在小程序的設置頁面,用戶點擊按鈕是沒有辦法進行其操做的,要在其返回頁面的onShow方法裏進行wx.getSetting的success()操做開發