微信小程序 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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。