微信小程序> 微信进不去,微信小程序登录弹框问题

微信进不去,微信小程序登录弹框问题

浏览量:541 时间: 来源:print(hello world)
1.getUserInfo相信刚接触微信小程序开发的人都在想官方给出的这个是什么意思我来解释一下吧
还记得我们在最开始使用微信小程序的时候吗?第一次进一个微信小程序的时候会直接弹出来个框询问我们是否允许哟用户获取信息,微信官方觉得这样不好,一上来就让客户点击一个不明所以的允许,很多客户都会不点,用户体验度很差,所以呢,我们的微信官方,将不再允许直接弹框,而是进入你的小程序后,你可以在首页或者我的里面设置一个`button`组件当客户点击了这个组件我们就可以使用wx.getUserInfo这个API来获得用户的数据,而这些事情在我们创建小程序时,微信官方已经帮我们创建好了,就是下面这张图
程序解读:如果(我们的非hasUserInfo并且CanIUser)那么设置一个button组件open-type属性为getUserInfo,并且绑定一个点击事件,否则(我们已经获得了用户信息)就显示用户的头像和昵称hasUserInfo是我们设置的一个变量,默认为false,canIUser也是我们设置的一个变量,默认为wx.canIUser(‘button.open-type.getUserInfo’)wx.canIUser(“组件.属性.选择”)是这个API的用法,判断这个组件的属性的选择是否在当前版本可以用,
2.当我们点击这个获取用户信息button时:我们的getUserInfo函数的参数e就变为下面这个json对象(其实e就是我们button组件)首先我们将app.js里的globalData的userInfo变量设置为button.detail.userInfo是一个json对象,方便我们在其他页面想使用用户信息用globalData即可然后把本页面的js里的data里的userInfo也改为用户信息json对象然后把hasUserInfo置位true,这个是true了那我们的首页面就变成图片喽,
官方的意思是,如果我们没有经过用户授权,即点击button按钮,是不能使用wx.getUserInfo这个API的,如果使用会直接失败.
3.怎么判断用户是否授权如果getSetting返回的res.authSetting[‘scope.userInfo’]为true那么就是已经授权为什么呢因为open-type是个神奇的属性,当我们的用户点击时就能向微信服务器发一个消息,证明授权了.授权了就可以用wx.getUserInfo了
wx.getSetting({success:res={if(res.authSetting['scope.userInfo']){//已经授权,可以直接调用getUserInfo获取头像昵称,不会弹框wx.getUserInfo({success:res={//可以将res发送给后台解码出unionIdthis.globalData.userInfo=res.userInfo//由于getUserInfo是网络请求,可能会在Page.onLoad之后才返回//所以此处加入callback以防止这种情况if(this.userInfoReadyCallback){this.userInfoReadyCallback(res)}}})}}})我们在点击button组件的时候就会把信息存好,但是,为啥我们的app.js里还要用getSetting吗,因为我们一旦退出小程序,那么我们的的app.js或者index.js都会恢复,然后我们在进来的时候,已经授权了,所以我们可以直接取获取用户信息了.不得不说这个功能真的是让人头痛.绕了一大圈子

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎