用微信原生代码应为:
使用 button 组件,并将 open-type 指定为 getUserInfo 类型,获取用户基本信息。
<button form-type="submit" open-type="getUserInfo" bindgetuserinfo="getUserInfo"></button>
bindgetuserinfo:用户点击该按钮时,会返回获取到的用户信息,回调的detail数据与wx.getUserInfo返回的一致,open-type="getUserInfo"时有效
open-type: getUserInfo 获取用户信息,可以从bindgetuserinfo回调中获取到用户信息
然而uniapp中 使用微信的open-type=“getUserInfo” 不能获取到userinfo
在methods 写入方法
getuserinfo: function(){
// wx登录
wx.login({
success (res) {
if (res.code) {
//发起网络请求
var code = res.code
// 获取微信用户信息
wx.getUserInfo({
success: function(res) {
var userInfo = res.userInfo
var nickName = userInfo.nickName
var avatarUrl = userInfo.avatarUrl
var gender = userInfo.gender //性别 0:未知、1:男、2:女
var province = userInfo.province
var city = userInfo.city
var country = userInfo.country
},
fail:res=>{
// 获取失败的去引导用户授权
}
})
} else {
...
}
}
})
},
在调用中 会提示说 does not have a method “bindgetuserinfo” to handle event “getuserinfo”.
<button class='testbutton' open-type="getUserInfo" @getuserinfo="getuserinfo" withCredentials="true">
将bindgetuserinfo改成@getuserinfo=“getuserinfo” ,再添加withCredentials=“true”,就可以调用了