小程序拒绝授权恢复办法,小程序授权登录失败再重新登录
本文摘要
很多人在进入小程序之后,会弹出一个窗口,允许授权,很多用户会不经意间关闭拒绝,那么对于小程序开发者来说,需要如何取消这种拒绝授权呢,下面为大家解答。
很多人在进入小程序之后,会弹出一个窗口,允许授权,很多用户会不经意间关闭拒绝,那么对于小程序开发者来说,需要如何取消这种拒绝授权呢,下面为大家解答。
1小程序被拒绝授权之后
首先在首页拒绝了授权之后呢,会拉起一个模态弹窗,这点和上边那篇文章中一样的。
app.js中改写一下getUserInfo这个函数
getUserInfo:function(cb){
var that = tShopfas
if(tShopfas.globalData.userInfo){
typeof cb == "function" && cb(tShopfas.globalData.userInfo)
}else{
//调用登录接口
wx.login({
success: function () {
wx.getUserInfo({
success: function (res) {
that.globalData.userInfo = res.userInfo
typeof cb == "function" && cb(that.globalData.userInfo)
},
fail: function(){
wx.showModal({
title: '用户未授权',
content: '如需正常使用小程序功能,请按确定并且在【我的】页面中点击授权按钮,勾选用户信息并点击确定。',
showCancel: false,
success: function (res) {
if (res.confirm) {
console.log('用户点击确定')
}
}
})
}
})
}
})
}
}
如果用户拒绝了授权,则会弹出一个框:
2引导用户到重新授权按钮
上步中已经提到,需要用户到另一个tab中再点击一个按钮,为什么要这么设置呢。主要是因为单单靠用户点击右上角来设置这个授权有那么一些麻烦,因为需要经以下这些步骤:
- 用户点击右上角【…】
- 关于XXX(小程序的名称)
- 再点击右上角【…】
- 选择设置
- 打开用户信息
……一看到就已经想手动再见了 所以我选择在【我的】这个tab中添加一个用户未授权时才能看到的button,点击了这个神奇的button,就能再次选择是否授权。 先别急着吐槽按钮丑,看码: 我在这个页面中首先加了一个叫做noAuthorized的变量,它的默认值是true,代表【是的,就是没授权咋地了?】
给这个按钮绑定的事件:
tapToAuthorize: function(){
//再授权
wx.openSetting({
success: (res) => {
/*
* res.authSetting = {
* "scope.userInfo": true,
* "scope.userLocation": true
* }
*/
//因为openSetting会返回用户当前设置,所以通过res.authSetting["scope.userInfo"]来判断用户是否勾选了【用户信息】这一项
if (res.authSetting["scope.userInfo"]===true){
var that = tShopfas
app.getUserInfo(function (userInfo) {
//更新数据
that.setData({
userInfo: userInfo,
noAuthorized: false
})
})
}
else{
wx.showModal({
title: '用户未授权',
content: '如需正常使用小程序,请点击授权按钮,勾选用户信息并点击确定。',
showCancel: false,
success: function (res) {
if (res.confirm) {
console.log('用户点击确定')
}
}
})
}
}
})
}
如此前提到的文中所说,小程序提供了wx.openSetting(OBJECT)和wx.getSetting(OBJECT),前者可以调起客户端小程序设置界面,返回用户设置的操作结果,后者可以获取用户当前设置。由于此处已经调用了openSetting可以返回操作结果进行判断,所以第二个就用不上了。然后,
-
点击授权按钮后,先弹出一个框
-
如果勾选了用户信息并点击了确定,则setdata后页面刷新,按钮消失,显示用户头像昵称等信息。
- 如果没有勾选又点击了确定,则再次弹出模态弹窗,提示授权的重要性:
第二部分:如何开通一个小商店
相关文章
****更多行业产品开发方案,请关注 加速度JSUDO***
<以上资讯仅供参考,如果您需解决具体问题,建议您关注作者;如果有软件产品开发需求,可在线咨询加速度产品经理获取方案和报价>
加速度JSUDO是一家企业级数字化解决方案提供商,专注于软件开发、网络营销、数字化转型咨询及云计算服务。核心业务包括定制化ERP/CRM系统、快速应用开发、大数据分析及物联网(IoT)解决方案,助力企业提升效率与智能化水平。服务覆盖制造业、零售、物流等多行业,致力于通过技术创新推动客户数字化转型。










