【小程序】获取用户信息保存到本地、全局变量

微信小程序升级后,获取 wx.getUserInfo 接口后续将不再出现授权弹窗,所以需要使用 button 组件,并将 open-type 指定为 getUserInfo 类型,获取用户基本信息。 微信小程序与小游戏获取用户信息接口调整说明

1.在页面上创建一个button标签把 open-type 设置为 getUserInfo 代码如下:


2.事件getUserInfo的回调函数如下:

  getUserInfo: function() {
  	//开启loading框
    wx.showLoading({
      title: '正在登录...',
      mask: true
    });
    //调登录api
    wx.login({
      success: res_login => 
        if (res_login.code) {
        //获取用户信息
          wx.getUserInfo({
            success: res => {
              //获取用户的openId
              wx.request({
                url: '后台提供的接口地址',
                data: {
                  code: res_login.code  //传入code参数获取用户的openId
                },
                header: {
                  'content-type': 'application/json'
                },
                success: res => {
                  //1.存用户信息到本地存储
                  wx.setStorageSync('userInfo', res.data)
                  //2.存用户信息到全局变量
                  var app = getApp();
                  app.globalData.userInfo = res.data
                  //隐藏loading框
                  wx.hideLoading();
                },
                fail: res => {
                  wx.showToast({
                    title: '登录失败',
                    icon: 'none'
                  })
                }
              })
            },
          })
        }
      }
    })
  },

3.如果用户初次进来点击登录拒绝了授权,应在 wx.getUserInfo 的失败回调函数中兼容此场景,实例代码如下:

fail: () => {
	//隐藏loading框
	wx.hideLoading();
	//提示用户授权
	wx.showToast({
		title: '你已拒绝授权,请授权再使用',
		icon: 'none'
	});
}

你可能感兴趣的:(小程序)