1. 程式人生 > >【小程式】獲取使用者資訊儲存到本地、全域性變數

【小程式】獲取使用者資訊儲存到本地、全域性變數

微信小程序升級後,獲取 wx.getUserInfo 介面後續將不再出現授權彈窗,所以需要使用 button 元件,並將 open-type 指定為 getUserInfo 型別,獲取使用者基本資訊。 微信小程式與小遊戲獲取使用者資訊介面調整說明

1.在頁面上建立一個button標籤把 open-type 設定為 getUserInfo 程式碼如下:

<button type="default" open-type="getUserInfo" bindgetuserinfo="getUserInfo">登入</button>

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'
	});
}