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

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

作者: 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