关于微信小程序getUserProfile代替getUserInfo获取用户信息能力的调整总结

关于微信小程序getUserProfile代替getUserInfo获取用户信息能力的调整总结

需求描述:
  • 最近微信小程序官方对获取用户信息getUserInfo能力又调整了,并且新增了getUserProfile方法在新版以取而代之。

  • 关于此次的调整,官方给出的理由是:很多开发者在打开小程序时就通过组件方式唤起getUserInfo弹窗,如果用户点击拒绝,无法使用小程序,这种做法打断了用户正常使用小程序的流程,同时也不利于小程序获取新用户。

  • 最开始直接用wx.getUserInfo就能获取到用户信息然后被限制;后面使用button按钮的open-type="getUserInfo",通过bindgetuserinfo事件获取用户信息然后叒限制;现在又来个getUserProFile。。。在这里插入图片描述

  • 官方通告:为优化用户的使用体验,平台将进行以下调整:

    1. 2021年2月23日起,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取unionID
    2. 2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。
    3. 新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》
    4. 由于getUserProfile接口从2.10.4版本基础库开始支持(覆盖微信7.0.9以上版本),考虑到开发者在低版本中有获取用户头像昵称的诉求,对于未支持getUserProfile的情况下,开发者可继续使用getUserInfo能力。开发者可参考getUserProfile接口文档中的示例代码进行适配。
解决方案:
  • 原来的授权登陆流程不变(wx.login >>> code >>> 请求接口换取openid >>> openid >>> 自定义请求态 >>> uid),新增的getUserProfile能力直接通过事件触发就可以了,不需要使用open-type,这里由于getUserProfile方法在微信旧版本中存在兼容性,所以我这里做了兼容处理(已有的getUserInfo方法不用更改):

  • // 1.申明 isGetUserProfile 字段作为兼容能力的判定
    	if (wx.getUserProfile) {
            this.isGetUserProfile = true
         } else {
            this.isGetUserProfile = false
         }
    
    // 2.使用新增的wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人	 信息均需用户确认
    	getUserProfile() {
            wx.getUserProfile({
              desc: '用于完善用户信息',
              success: (res) => { 
                // 这里拿到登录code
                  wx.login({ 
                  provider: 'weixin',
                  success: res2 => {
                  // 这里根据实际业务进行登录成功处理
                  },
                  complete() {
                    uni.hideLoading();
                  }
                });
              }
            })
          }
    
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木屋x

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值