微信小程序~App.js中獲取用戶信息


(1)代碼:主要介紹下獲取用戶信息部分

  onLaunch: function () {
    // 展示本地存儲能力
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)

    // 登錄
    wx.login({
      success: res => {
        // 發送 res.code 到后台換取 openId, sessionKey, unionId
      }
    })
    // 獲取用戶信息
    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)
              }
            }
          })
        }
      }
    })

    onLaunch為小程序生命周期---小程序初始化

   

 

(2)獲取用戶數據

      wx.getSetting({...})或者wx.openSetting({...})

     開發者可以調用 wx.openSetting 打開設置界面,引導用戶開啟授權

     參數:

    

    obj.success 的成功回調函數參數:

  

wx.openSetting({
    success:function(res){
        
    }
})
或者

wx.openSetting({
    success=>res{

    }
})

AuthSetting

用戶授權設置信息

scope 對應接口 描述
scope.userInfo wx.getUserInfo 用戶信息
scope.userLocation wx.getLocationwx.chooseLocation 地理位置
scope.address wx.chooseAddress 通訊地址
scope.invoiceTitle wx.chooseInvoiceTitle 發票抬頭
scope.invoice wx.chooseInvoice 獲取發票
scope.werun wx.getWeRunData 微信運動步數
scope.record wx.startRecord 錄音功能
scope.writePhotosAlbum wx.saveImageToPhotosAlbumwx.saveVideoToPhotosAlbum 保存到相冊
scope.camera camera 組件 攝像頭

 

代碼:

    // 獲取用戶信息
    wx.openSetting({
/*接口調用成功的回調函數*/ success: res
=> {
/*success成功回調函數的參數:authorSetting對象*/
/*authSetting對象屬性之一:scope.userInfo授權用戶信息*/
if (res.authSetting['scope.userInfo']) { /*scope.userInfo(是否授權用戶信息,對應接口 wx.getUserInfo)*/
wx.getUserInfo({
}) } } })

 

(3)獲取用戶信息

    wx.getUserInfo(Object object)獲取用戶信息

    參數:

    

    object.success 回調函數的參數

   

    // 獲取用戶信息
    wx.openSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 必須是在用戶已經授權的情況下調用
          wx.getUserInfo({
            success: res => {
              // globalData函數設置全局變量,方便其他頁面調用。
              this.globalData.userInfo = res.userInfo
              // 由於 getUserInfo 是網絡請求,可能會在 Page.onLoad 之后才返回
              // 所以此處加入 callback 以防止這種情況
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }
      }
    })

    globalData函數設置全局變量,詳見下篇文章使用globalData函數設置全局變量

 

 

 

 

 

 

 

.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM