1、获取用户授权设置:wx.getSetting( )
属性 | 类型 | 必填 | 说明 |
success | function | 否 | 接口调用成功回调函数 |
fail | function | 否 | 接口调用失败的回调函数 |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success 回调函数
authSetting | 类型 | 说明 |
authSetting | authSetting | 用户授权结果 |
模块 | 代码 |
用户信息 | scope.userInfo |
地理位置 | scope.userLocation |
//向用户请求信息,若没有授权,则弹出框 让用户进行授权
wx.getSetting({
success(res) {
// 获取用户信息
console.log(res.authSetting['scope.userInfo']))
}
})
2、查看小程序是否有获取用户信息的权限
获取用户信息
wx.getUserInfo({
//箭头调用法
success: (data) => {
console.log(data);
console.log(data.rawData);
console.log(data.signature);
console.log(data.encryptedData);
console.log(data.iv);
console.log(data.errMsg);
console.log(data.cloudID);
// app.globalData.userInfo = data.userInfo //全局变量赋值
// app.globalData.haveauth = true
}
})
3、获取用户地理位置
wx.getSetting({
success(res) {
if (!res.authSetting['scope.userLocation']) {
wx.authorize({
scope: 'scope.userLocation',
success() {
//授权后的业务逻辑
}
})
}
}
})
app.json中添加如下字段
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
},
4、获取用户code
wx.login({
success: res => {
// 获取到用户的 code 之后:res.code
console.log("用户的code:" + res.code);
}
});
5、利用云函数获取用户openid
前端js文件
wx.cloud.callFunction({
name: 'login',
data: {},
success: res => {
// console.log('[云函数] [login] user openid: ', res.result.openid)
var openid = res.result.openid
console.log(openid)
},
})
云函数index.js
const cloud = require('wx-server-sdk')
// 初始化 cloud
cloud.init()
exports.main = (event, context) => {
console.log(event)
console.log(context)
// 获取 WX Context (微信调用上下文),包括 OPENID、APPID、及 UNIONID(需满足 UNIONID 获取条件)
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
6、获取用户信息
// 获取用户信息
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
wx.getUserInfo({
success: res => {
this.setData({
avatarUrl: res.userInfo.avatarUrl,
userInfo: res.userInfo
})
}
})
}
}
})
8、直接获取用户头像
<view>
<view class="logo">
<open-data type="userAvatarUrl" class="userinfo" id="userinfo"></open-data>
</view>
</view>