美文网首页
微信小程序获取当前用户信息

微信小程序获取当前用户信息

作者: Vector_Wan | 来源:发表于2021-03-06 15:52 被阅读0次

一个很常用的功能,但是我还是发现有一些需要注意的地方在里面,简单记录一下。

获取用户基本信息

第一个问题就是这个 button 组件需要添加 open-type 属性,并指定为 getUserInfo 类型,来获取用户基本信息。还有另外一种做法,具体可以参考 官方文档的说明

<button bindgetuserinfo="getUserName"  (绑定的函数)
open-type="getUserInfo">点击登录</button> 

放一个动图哈哈哈


js 部分就是响应点击事件,使用 api wx.getUserInfo(Object object)
获取用户信息,注意传递给 wx.getUserInfo 的是一个字典其中包含了两个函数分别作为成功和失败的回调函数(callback function)

Page({

  /**
   * 页面的初始数据
   */
  data: {
    name: "请先登录"
  },

  /**
   * 获取用户信息
   */
  getUserName: function () {
    wx.openSetting({})
    var that = this;
    // 调用微信的接口获取当前用户的信息(传递的参数是字典)
    wx.getUserInfo({
      // 调用成功后触发(回调函数)
      success: function(res) {
        console.log("成功:", res.userInfo.nickName);
        // 修改页面和后台数据
        that.setData({name: res.userInfo.nickName});
      },
      // 调用失败后触发
      fall: function (res) {
        console.log("失败:", res);
      }
    });
  }
})

注意 this 的指代对象发生了变化,最开始的this是指代 Page() 构造出来的对象,在函数里面使用 this 会说未指定,所以我们使用了 that 承接一下,这也算传统艺能咯。

另外一点:获取用户信息时会自动弹出一个对话框问用户是否提供信息,这个弹窗只弹出一次,如果用户点击了拒绝后来又想改为允许,可以使用 wx.openSetting({})

除了可以获取用户的昵称之外还有很多信息可以得到,还有一个比较常用的就是用户头像了也就是 res.userInfoavatarUrl

获取用户地理位置信息

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

  /**
   * 页面的初始数据
   */
  data: {
    localpath: "点击获取位置信息"
  },

  /**
   * 获取用户地理位置信息
   */

  getLocalpath: function () {
    var that = this;
    wx.chooseLocation({
      success: function (res) {
        // console.log(res);
        that.setData({localpath: res.name});
      }
    });
  }
})

相关文章

网友评论

      本文标题:微信小程序获取当前用户信息

      本文链接:https://www.haomeiwen.com/subject/zxijqltx.html