18910140161

微信小程序用户拒绝授权的解决方案

顺晟科技

2021-06-16 10:50:25

662

由于小程序被修改,当用户次进入小程序时,小程序不会主动弹出授权界面。此时,我们需要判断用户是否已经授权。

也就是app.js的globalData下的userInfo能否获取用户的信息。

我们可以在app.js Modify中看到下面的代码,在这个代码的基础上,下面代码中的else部分是在没有用户授权的情况下执行的。如果用户未经授权,强制用户跳转到/pages/auth/auth页面,该页面是授权页面。

//获取用户信息

wx.getSetting({

成功: res={

if(RES . AuthSetting[' scope . UserInfo ']){

//授权,可以直接调用getUserInfo得到头像昵称,不用弹出框

wx.getUserInfo({

成功: res={

//你可以把res发送到后台对unionId进行解码

this . GlobalData . UserInfo=RES . UserInfo

//由于getUserInfo是网络请求,可能会在Page.onLoad之后返回

//所以在这里添加回调来防止这种情况

if(this . UserInforeadyCallback){

this.userInfoReadyCallback(res)

}

}

})

}else{

//未经授权。无法获取用户信息。用户拒绝授权

wx.reLaunch({

url: '/pages/auth/auth ',

})

}

}

})

},

当用户被迫跳过此授权页面时。参见:下面的页面

这里采用的是ColorUI框架。

按钮如下:

button class=' Cu-btnbg-green shadow lgblock ' open-type=' getuser info ' bindguteuserinfo=' ongetuser info '微信登录/button

用户点击微信登录后,弹出授权页面。此时,用户有两个选择。1.直接单击授权。2.取消授权。

按钮绑定的事件代码如下:

//用户点击微信授权登录按钮回叫功能

onGetUserInfo:function(e){

//第二个。用户单击取消授权

如果(e.detail.userInfo==null){//授权失败,取消授权

Console.log('授权失败,取消授权');

wx.showModal({

标题: '未经授权',

内容: '为了不影响您的使用,请打开相应的权限~ ',

showCancel: false,

成功: res={

if (res.confirm) {

//单击“取消”再次获得授权

wx.openSetting({

成功:数据={

console.log(数据)

If(数据。authsetting ['作用域。userinfo ']==true){//判断是否授权

//再次获取用户数据

wx.getUserInfo({

成功:功能(res) {

console . log(RES . UserInfo);

//授权后在app.js中重新分配userinfo。

getApp()。

//页面跳转

wx.reLaunch({

URL : '/page/activity/activity '

})

}

})

}

},

fail: function () {

Console.info('设置页面失败');

}

});

}

}

});

//个。用户点击授权

}else{

console . log(e . detail . UserInfo);

//授权后在app.js中重新分配userinfo。

getApp()。

//页面跳转

wx.reLaunch({

URL : '/page/activity/activity '

})

}

}

如果用户没有一直授权,他就不能进入小程序并停留在授权页面上。授权后才能正常使用。

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航