获取个人微信信息

Posted For_elegant

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取个人微信信息相关的知识,希望对你有一定的参考价值。

上一篇教程中写道,开发工具会生成一个默认的程序框架,其中程序的主流程代码包含在app.js中。默认实现中,该部分功能比较简单,不过对于学研究小程序开发还是比较有价值的。

由于代码行数不多,下面一次性贴出来后进行讲解

//app.js
App({
  onLaunch: function () {
    //调用API从本地缓存中获取数据
    var logs = wx.getStorageSync(‘logs‘) || []
    logs.unshift(Date.now())
    wx.setStorageSync(‘logs‘, logs)
  },
  getUserInfo:function(cb){
    var that = this
    if(this.globalData.userInfo){
      typeof cb == "function" && cb(this.globalData.userInfo)
    }else{
      //调用登录接口
      wx.login({
        success: function () {
          wx.getUserInfo({
            success: function (res) {
              that.globalData.userInfo = res.userInfo
              typeof cb == "function" && cb(that.globalData.userInfo)
            }
          })
        }
      })
    }
  },
  globalData:{
    userInfo:null
  }
})

代码中定义了一个App对象,该对象包含onLaunchgetUserInfo两个方法和globalData成员变量 其中onLaunch方法会在程序启动时由框架来进行调用。在该方法中,程序通过微信提供的本地存储接口获取了一个logs变量,第一次获取时会返回空,这时将变量初始化为空数组。之后在数组头部添加一个格式化的时间字符串,之后将数组变量存储在本地。

微信小程序框架提供了一系列api来帮助我们进行本地数据存储,上面的代码中使用到了wx.getStorageSyncwx.setStorageSync两个api,更多相关api可以参考这里

getUserInfo方法很容易理解,会执行获取用户信息的功能。不过该方法不同于onLaunch,它不是框架预设的函数,因此不会自动触发调用。该方法是在index.js的onload方法中调用的(关于index.js部分会在后续教程中讲解)。该方法需要调用者传递一个名为cb的参数,首先判断是否获取过用户信息,如果获取过并且cb是函数的话,就会调用cb函数并将globalData成员变量传递进去,否则将调用wx.login接口来获取用户信息。

对js不熟悉或者很少接触脚本语言的同学可能会对上述代码的语法产生困惑,这几行代码涉及到了函数回调,匿名函数,闭包等概念,我后续会针对这部分单独写一篇教程。

代码最后定义了 globalData成员变量,该成员包含userInfo变量,用来保存用户信息。

以上是关于获取个人微信信息的主要内容,如果未能解决你的问题,请参考以下文章

微信PC端获取个人信息

个人微信Hook-开发SDK-C#Demo

个人微信Hook-C#Demo开发SDK

微信小程序,weixin,怎么获取用户的Openid

微信小程序获取用户ip

微信小程序判断用户是否需要再次授权获取个人信息