微信小程序獲取當(dāng)前用戶信息

一個很常用的功能,但是我還是發(fā)現(xiàn)有一些需要注意的地方在里面,簡單記錄一下。

獲取用戶基本信息

第一個問題就是這個 button 組件需要添加 open-type 屬性,并指定為 getUserInfo 類型,來獲取用戶基本信息。還有另外一種做法,具體可以參考 官方文檔的說明

<button bindgetuserinfo="getUserName"  (綁定的函數(shù))
open-type="getUserInfo">點擊登錄</button> 

放一個動圖哈哈哈


js 部分就是響應(yīng)點擊事件,使用 api wx.getUserInfo(Object object)
獲取用戶信息,注意傳遞給 wx.getUserInfo 的是一個字典其中包含了兩個函數(shù)分別作為成功和失敗的回調(diào)函數(shù)(callback function)

Page({

  /**
   * 頁面的初始數(shù)據(jù)
   */
  data: {
    name: "請先登錄"
  },

  /**
   * 獲取用戶信息
   */
  getUserName: function () {
    wx.openSetting({})
    var that = this;
    // 調(diào)用微信的接口獲取當(dāng)前用戶的信息(傳遞的參數(shù)是字典)
    wx.getUserInfo({
      // 調(diào)用成功后觸發(fā)(回調(diào)函數(shù))
      success: function(res) {
        console.log("成功:", res.userInfo.nickName);
        // 修改頁面和后臺數(shù)據(jù)
        that.setData({name: res.userInfo.nickName});
      },
      // 調(diào)用失敗后觸發(fā)
      fall: function (res) {
        console.log("失敗:", res);
      }
    });
  }
})

注意 this 的指代對象發(fā)生了變化,最開始的this是指代 Page() 構(gòu)造出來的對象,在函數(shù)里面使用 this 會說未指定,所以我們使用了 that 承接一下,這也算傳統(tǒng)藝能咯。

另外一點:獲取用戶信息時會自動彈出一個對話框問用戶是否提供信息,這個彈窗只彈出一次,如果用戶點擊了拒絕后來又想改為允許,可以使用 wx.openSetting({})

除了可以獲取用戶的昵稱之外還有很多信息可以得到,還有一個比較常用的就是用戶頭像了也就是 res.userInfoavatarUrl。

獲取用戶地理位置信息

<!-- 獲取地理位置信息 -->
<view bindtap="getLocalpath">{{localpath}}</view>
// pages/bind/bind.js
Page({

  /**
   * 頁面的初始數(shù)據(jù)
   */
  data: {
    localpath: "點擊獲取位置信息"
  },

  /**
   * 獲取用戶地理位置信息
   */

  getLocalpath: function () {
    var that = this;
    wx.chooseLocation({
      success: function (res) {
        // console.log(res);
        that.setData({localpath: res.name});
      }
    });
  }
})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容