小程序开发获取用户微信号(wx小程序授权登录)
用户信息:
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html
获取用户信息wx.getUserProfile(Object object)
获取用户信息。页面产生点击事件(例如 button 上 bindtap 的回调中)后才可调用,每次请求都会弹出授权窗口,用户同意后返回 userInfo。该接口用于替换 wx.getUserInfo。
Bug & Tip
- tip:仅小程序中 wx.getUserInfo 接口进行调整,小游戏中不受影响;
- tip:开发者工具中仅 2.10.4 及以上版本可访问 wx.getUserProfile 接口,在真机上可参考示例代码进行判断,无需根据版本号或者 canIUse 进行条件。
- tip:wx.getUserProfile 返回的加密数据中不包含 openid 和 unionId 字段。
- bug:开发者工具中 2.10.4~2.16.1 基础库版本通过 <button open-type="getUserInfo"> 会返回真实数据,真机上此区间会按照公告返回匿名数据。
<block wx:if="{{!hasUserInfo}}">
<button wx:if="{{canIUseGetUserProfile}}" bindtap="getUserProfile">
获取头像昵称 (弹窗)</button>
<button wx:else open-type="getUserInfo" bindgetuserinfo="getUserInfo">
获取头像昵称(不弹窗了) </button>
</block>
Page({
data: {
userInfo: {},
hasUserInfo: false,
canIUseGetUserProfile: false,
},
onLoad() {
if (wx.getUserProfile) {
this.setData({
canIUseGetUserProfile: true
})
}
},
getUserProfile(e) {//获取用户信息弹窗
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认
// 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
wx.getUserProfile({
desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
})
},
getUserInfo(e) { //小程序进行了调整,不再弹窗确认
// 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息
this.setData({
userInfo: e.detail.userInfo,
hasUserInfo: true
})
},
})
<button open-type="getPhonenumber" @getphonenumber="onGetPhoneNumber"
class="mybtn" >点击登录</button>
onGetPhoneNumber(e){
console.log(e);
if (e.detail.errMsg == "getPhoneNumber:ok") { //允许授权
uni.request({
url: getApp().globalData.url "/savePhone",
method: 'POST',
data: {
"encrypted_data":e.detail.encryptedData,
"iv":e.detail.iv,
"openid":this.openid
},
success: (res) => {
this.token=res.data.data.token
// .....
}
});
}
}
说明:getUserProfile和getPhoneNumber,都需要用户点击操作。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com