众所周知,小程序进入首先都要进行微信受权的,那万一用户不当心点了拒绝按钮怎么办呢?不要慌,官方早已预料到此状况,并提供了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()操做开发