微信小程序~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为小程序生命周期---小程序初始化

微信小程序~App.js中获取用户信息

(2)获取用户数据

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

开发者可以调用 wx.openSetting 打开设置界面,引导用户开启授权

参数:

微信小程序~App.js中获取用户信息

obj.success 的成功回调函数参数:

  微信小程序~App.js中获取用户信息

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)获取用户信息

参数:

微信小程序~App.js中获取用户信息

object.success 回调函数的参数

微信小程序~App.js中获取用户信息

    // 获取用户信息
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函数设置全局变量

.

上一篇:Nginx七层负载均衡的几种调度算法


下一篇:Docker Compose 部署Nginx服务实现负载均衡