收藏
回答

为什么wx.getUserInfo无法获取用户信息?

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 需求 wx.getUserInfo 客户端 6.7 2.4

wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
          wx.getUserInfo({
            success: res => {
              // 可以将 res 发送给后台解码出 unionId
              this.globalData.userInfo = res.userInfo;
               
              // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }
      }

    });



我在app.js里这样写了 但是globalData.userInfo 里的值还是null

我想实现一打开小程序就自动获取用户信息 要怎么做?

最后一次编辑于  01-11  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

4 个回答

  • 张乾
    张乾
    01-15

    没授权之前必须要用按钮触发授权了,授权以后就可以用 wx.getUserInfo 的 success回调 获取信息了,同时 fail回调也做个判断,看看授权关没关

    01-15
    赞同
    回复
  • 炜炎
    炜炎
    01-14

    微信限制小程序端随便用户的信息了,据说是为了安全和用户体验去考虑,必须用button去触发,防止小程序端在用户不授权情况下反复询问

    01-14
    赞同
    回复
  • Warwick🇨🇳 🇨🇳
    Warwick🇨🇳 🇨🇳
    01-14

    ....  多年之前官方就出通知 尽早替换.

    01-14
    赞同
    回复
  • 哎哟迪奥
    哎哟迪奥
    01-11

    1. 在wxml中使用按钮,设置开放能力类型,绑定相关事件,如tap


    <button open-type="getUserInfo" catch:tap="getUserInfo">授权</button>

    2. 在js中添加事件对应的方法,从方法的参数中可以获取用户信息,比如event.detail.userInfo,在控制台可查看

    Page({

    /**

      * 获取用户信息的事件绑定函数

      */

    getUserInfo(event) {

        console.log(event);

    }

    });

    3. 授权一次后,你的wx.getUserInfo正常使用了,之后每次都可以直接获取用户信息了



    01-11
    赞同
    回复 3