关于微信小程序拒绝授权后,重新授权并获取用户信息

时间:2021-09-17 11:44:02

  最近公司做了一些有关微信小程序的项目,涉及到授权获取用户基本信息,但是在拒绝授权之后就不会再出现授权窗口;

  看网上也有很多人遇到了同样的问题,所以记录下来我的处理方法,供大家和自己学习和记录:

  当调用小程序 wx.getUserInfo(OBJECT) 获取用户基本信息时,需要用户进行授权操作,如果用户点击了拒绝,则再次调用该方法就不会出现对应的授权窗口,很是让人困惑;

  找了许久,最后让我发现了它:------> wx.openSetting(OBJECT),下面让我们认识一下:

  wx.openSetting(OBJECT)

  设置:调起客户端小程序设置界面,返回用户设置的操作结果;基础库 1.1.0 开始支持,低版本需做“兼容处理

  关于微信小程序拒绝授权后,重新授权并获取用户信息

  关于微信小程序拒绝授权后,重新授权并获取用户信息

  通过该方法可继续进行授权操作,不多做解释,直接上代码:

 var loginStatus = true;
getPromission: function() {
if (!loginStatus) {
wx.openSetting({
success: function (data) {
if(data) {
if (data.authSetting["scope.userInfo"] == true) {
loginStatus = true;
wx.getUserInfo({
withCredentials: false,
success: function (data) {
console.info("2成功获取用户返回数据");
console.info(data.userInfo);
},
fail: function () {
console.info("2授权失败返回数据");
} });
}
} },
fail: function () {
console.info("设置失败返回数据");
} });
}else {
wx.login({
success: function (res) {
if (res.code) { wx.getUserInfo({
withCredentials: false,
success: function (data) {
console.info("1成功获取用户返回数据");
console.info(data.userInfo);
},
fail: function () {
console.info("1授权失败返回数据");
loginStatus = false;
// 显示提示弹窗
wx.showModal({
title: '提示标题',
content: '提示内容',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定')
} else if (res.cancel) {
wx.openSetting({
success: function (data) {
if (data) {
if (data.authSetting["scope.userInfo"] == true) {
loginStatus = true;
wx.getUserInfo({
withCredentials: false,
success: function (data) {
console.info("3成功获取用户返回数据");
console.info(data.userInfo);
},
fail: function () {
console.info("3授权失败返回数据");
} });
}
} },
fail: function () {
console.info("设置失败返回数据");
} });
}
}
});
} });
}
},
fail: function () {
console.info("登录失败返回数据");
} });
}
}

  以上是我实现的内容,没做处理,希望对大家有帮助!!!喷子勿喷