微信小程序wx.getUserProfile接口获取用户信息的使用

简介: 微信小程序wx.getUserProfile接口获取用户信息的使用

前言

  • 调整原因:很多开发者在打开小程序时就通过组件方式唤起getUserInfo弹窗,如果用户点击拒绝,无法使用小程序,这种做法打断了用户正常使用小程序的流程,同时也不利于小程序获取新用户。
  • 调整策略:推荐使用 wx.getUserProfile 获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,不推荐使用 getUserInfo 获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息
  • 开发调试:开发者工具中仅 2.10.4 及以上版本可访问 wx.getUserProfile 接口,在真机上可参考示例代码进行判断,无需根据版本号或者 canIUse 进行条件。
  • 官网地址参考:跳转链接

代码示例

//注意:将代码放在onLoad方法下
if (!wx.getStorageSync('hadAuthed')) {
              // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
              // An highlighted block
              wx.showModal({
                title: '温馨提示',
                content: '正在请求获取您的个人信息,以后续方便使用本程序!',
                success(res) {
                  if (res.confirm) {
                    wx.getUserProfile({
                      desc: "获取你的昵称、头像、地区及性别",
                      success: res => {
                        // app.globalData.userInfo =  data
                        wx.setStorageSync('userInfo', data)
                        wx.setStorageSync('hadAuthed', true)
                        // wx.getStorageSync('hadAuthed')
                         //这里可以发起获取token的请求
                        // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
                        // 所以此处加入 callback 以防止这种情况
                        // callback && callback(res);
                      },
                      fail: res => {
                        //拒绝授权
                        // that.showErrorModal('您拒绝了请求');
                        wx.showToast({
                          title: '授权失败',
                          icon: 'none',
                          duration: 1000
                        })
                        return;
                      }
                    })
                  } else if (res.cancel) {
                    wx.showToast({
                      title: '授权失败',
                      icon: 'none',
                      duration: 1000
                    })
                    //拒绝授权 showErrorModal是自定义的提示
                    // that.showErrorModal('您拒绝了请求');
                    return;
                  }
                }
              })
            }

温馨提示:

1.以往wx.getUserInfo是通过<button open-type="getUserInfo"/>按钮去触发,而wx.getUserProfile是以弹框的方式去触发

2.以往wx.getUserInfo是通过wx.getSetting去判断登录状态,而wx.getUserProfile是通过wx.setStorageSync缓存去判断登录状态

小坑

在新的wx.getUserProfile无法获取性别地区,只能获取头像和昵称,获取结果如图:

参考官方:官方公告链接跳转

解决方案:待更新

相关文章
|
3月前
|
小程序 物联网 程序员
【社区每周】“小程序商品”能力接口字段更新(10.23-10.29)
【社区每周】“小程序商品”能力接口字段更新(10.23-10.29)
35 0
|
3月前
|
存储 开发框架 小程序
社区每周丨小程序 CLI 1.8.10 版本上线及基础API新增接口(7.3-7.7)
社区每周丨小程序 CLI 1.8.10 版本上线及基础API新增接口(7.3-7.7)
43 0
|
3月前
|
小程序 安全 API
社区每周丨小程序基础API新增获取设备、系统等多个接口
社区每周丨小程序基础API新增获取设备、系统等多个接口
108 0
|
1天前
|
小程序
微信小程序用户登陆和获取用户信息功能实现
微信小程序用户登陆和获取用户信息功能实现
7 0
|
10天前
|
安全 Java Linux
企业微信应用结合Cpolar内网穿透实现固定域名验证回调本地接口服务
企业微信应用结合Cpolar内网穿透实现固定域名验证回调本地接口服务
|
22天前
|
小程序 开发者
体验版小程序为何无法访问云端服务器后端接口(请求失败...(已完美解决附加图片))?
体验版小程序为何无法访问云端服务器后端接口(请求失败...(已完美解决附加图片))?
17 0
|
27天前
|
小程序 前端开发 开发者
调用第三方接口微信登录接口
该文档介绍了调用微信登录接口的需求和实现思路。当用户尝试访问需要登录的页面时,若未登录则弹出微信登录选项。登录过程涉及微信小程序的wx.login()方法获取临时凭证code,并将其发送到服务器,服务器通过此code换取用户的OpenID、UnionID和session_key。依据这些信息,服务器可生成自定义登录态以识别用户身份。参考微信官方文档和登录流程图进行实现。
24 9
|
2月前
|
缓存 小程序
微信小程序解决wx.getUserProfile is not a function 问题
微信小程序解决wx.getUserProfile is not a function 问题
47 4
|
3月前
|
小程序 开发者
【社区每周】小程序商品能力两项接口变动(11月第三期)
【社区每周】小程序商品能力两项接口变动(11月第三期)
39 0
|
3月前
|
监控 小程序 安全
社区每周丨支付有礼支持引导用户收藏小程序及人脸认证接口更新(8.7-8.11)
社区每周丨支付有礼支持引导用户收藏小程序及人脸认证接口更新(8.7-8.11)
130 0