微信小程序 wx.getUserInfo引导用户授权问题实例分析
本文实例讲述了微信小程序wx.getUserInfo引导用户授权问题。分享给大家供大家参考,具体如下:
首先,在page外定义一个函数用户判断是否为空对象
varisEmptyObject=function(e){
vartemp;
for(tempine)
return!1;
return!0
}
然后,在page中的onload里面调用授权
onLoad:function(){
varthat=this;
if(app.globalData.userInfo){
this.setData({
userInfo:app.globalData.userInfo
})
}elseif(this.data.canIUse){
//由于getUserInfo是网络请求,可能会在Page.onLoad之后才返回
//所以此处加入callback以防止这种情况
app.userInfoReadyCallback=res=>{
this.setData({
userInfo:res.userInfo
})
}
}else{
//在没有open-type=getUserInfo版本的兼容处理
wx.getUserInfo({
success:res=>{
app.globalData.userInfo=res.userInfo
this.setData({
userInfo:res.userInfo
})
that.checkSettingStatu();
},
fail:function(){
wx.showModal({
title:'用户未授权',
content:'如需正常使用该小程序功能,请按确定并在授权管理中选中“用户信息”,然后点按确定。最后再重新进入小程序即可正常使用。',
showCancel:false,
success:function(resbtn){
if(resbtn.confirm){
wx.openSetting({
success:functionsuccess(resopen){
//获取用户数据
that.checkSettingStatu();
}
});
}
}
})
}
})
}
}
最后,在page中定义一个用于检测当前授权的状态
checkSettingStatu:function(cb){
varthat=this;
//判断是否是第一次授权,非第一次授权且授权失败则进行提醒
wx.getSetting({
success:functionsuccess(res){
varauthSetting=res.authSetting;
if(isEmptyObject(authSetting)){
//第一次
}else{
//没有授权的提醒
if(authSetting['scope.userInfo']===false){
wx.showModal({
title:'用户未授权',
content:'如需正常使用该小程序功能,请按确定并在授权管理中选中“用户信息”,然后点按确定。最后再重新进入小程序即可正常使用。',
showCancel:false,
success:function(res){
if(res.confirm){
wx.openSetting({
success:functionsuccess(res){
console.log()
}
});
}
}
})
}elseif(authSetting['scope.userInfo']===true){
//该处用户获取用户的一些授权信息
if(that.data.userInfo){
varnickname=that.data.userInfo.nickName;
vargender=that.data.userInfo.gender
//性别0:未知、1:男、2:女
if(gender==1){
gender="True"
}elseif(gender==2){
gender="False"
}else{
gender="True"
}
}
}
}
}
})
}
简单的记录,不喜勿喷。
希望本文所述对大家微信小程序开发有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。