有时可能需要获取用户的头像、昵称等信息,有时还需要获取用户的位置等,本文主要讲解如何调取API来获取用户的信息,需要注意的是用户授权成功后,才可以成功获取用户信息。
用户登录
wx.login
是用户登录API,获取code,传递给服务器后,可以用code换取用户的openid和seeeion_key,这些都是用户的唯一标识和会话认证。
wx.login ({
timeout: 0, // 设置超时时间,可以不设置
success: funcation(res){
// 登录成功
res.code// 登录获取的code
// 发送给服务器code
wx.request({
url: '自己服务器的地址',
data: {
code: res.code,
} // 设置参数把code传递给服务器
})
},
fail: funcation(){
// 登录失败
},
complete: funcation(){
// 不管成功失败都会执行
}
})
wx.checkSession
检测用户授权登录是否过期,如果获取成功则说明没有过期,如果获取失败则说明已经过期,需要重新获取登录。
wx.checkSession ({
success: funcation(){
// 未过期
},
fail: funcation(){
// 已经过期
wx.login() // 重新登录
},
complete: funcation(){
// 不管成功失败都会执行
}
})
用户信息
获取用户的头像、昵称等信息。其中字段“withCredentials”类型为boolean值,当为true时,需要此前调用了wx.login
,且登录状态没过期,此时返回的数据包含encryptedData等敏感信息;当为false时,不要求有登录状态,返回的数据不包含encryptedData等敏感信息。
wx.getUserInfo({
withCredentials: false,
lang: 'en', // 用户信息显示的语言
success: funcation(res){
// 获取用户信息成功
var userInfo = res.userInfo // 用户信息对象
userInfo.nickName // 用户昵称
userInfo.avatarUrl // 用户头像
userInfo.gender // 用户性别 0:未知,1:男,2:女
userInfo.province // 用户所在省份
userInfo.city // 用户所在城市
userInfo.country // 用户所在国家
},
fail: funcation(){
// 获取用户信息失败
},
complete: funcation(){
// 不管成功失败都会执行
}
})
注意 此接口调用不在弹出授权界面。
微信小程序整体登录流程如图所示。
用户位置
map地图组件我们讲解了map组件,这里讲解通过API来获取用户的位置信息。获取位置信息需要用户授权。
获取当前用户位置的代码如下:
wx.getLocation({
type: 'wgs84', // 类型"wgs84"返回gps坐标,"gcj02"返回wx.openLocation坐标
altitude: false, //true返回结果带高度信息,返回结果会变慢,false返回结果不带高度信息
success: funcation(res){
// 获取成功
res.latitude // 纬度,范围-90°~90°,负数表示南纬
res.longitude // 经度,范围-180°~180°,负数表示西经
res.speed // 速度,单位m/s
res.accuracy // 位置的精确度
res.altitude // 高度,单位m
},
fail: funcation(){
// 获取失败
},
complete: funcation(){
// 不管成功失败都会执行
}
})
查看当前位置。会调用微信小程序内置的地图来查看当前的位置信息,界面等也是微信小程序内置的。
wx.openLocation({
latitude:' latitude', // 使用gcj02坐标系,必须填写
longitude:' longitude', // 使用gcj02坐标系,必须填写
scale: 18, // 地图缩放比例,范围5~18
name: 'name', // 位置名
address: 'address', // 位置的详细说明
success: funcation(){
// 获取成功
},
fail: funcation(){
// 获取失败
},
complete: funcation(){
// 不管成功失败都会执行
}
})
选取位置。打开微信小程序内置的地图来选择指定的位置,可以进行搜索、地图选点等,微信小程序自带了样式。
wx.chooseLocation({
success: funcation(res){
// 选取成功
res.name // 位置名称
res.address // 位置的详细地址
res.latitude // 纬度,范围-90°~90°,负数表示南纬。使用gcj02坐标系
res.longitude // 经度,范围-180°~180°,负数表示西经。使用gcj02坐标系
},
fail: funcation(){
// 选取失败
},
complete: funcation(){
// 不管成功失败都会执行
}
})
用户授权
之前讲了很多功能都需要用户授权,如相册、地图等。这里就来讲一下用户授权和注意点。
当调用到用户授权的功能时,微信小程序会自动弹出对话框提示用户是否授权,但是此对话框只会弹出一次,一旦用户选择,将不再弹出。
wx.openSetting
:会调用起系统程序的设置界面,返回用户设置操作的结果,用户可以在此界面修改授权结果。wx.getSetting
:会把用户已经授权的结果以json的形式返回给我们。wx.authorize
:可以查看指定的某授权结果。
wx.authorize({
scope: 'scope',// 需要获取权限的scope
success: funcation(){
// 授权成功允许调用
},
fail: funcation(){
// 授权失败不允许调用
},
complete: funcation(){
// 不管成功失败都会执行
}
})
scope列表如表所示:
酷客网相关文章:
评论前必须登录!
注册