用户信息:
获取用户信息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 ) { ({ canIUseGetUserProfile: true }) } }, getUserProfile(e) {//获取用户信息弹窗 // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认 // 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗 wx.getUserProfile({ desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 success: (res) => { ({ userInfo: res.userInfo, hasUserInfo: true }) } }) }, getUserInfo(e) { //小程序进行了调整,不再弹窗确认 // 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息 ({ userInfo: e.de, hasUserInfo: true }) }, })
获取用户手机号
<button open-type="getPhoneNumber" @getphonenumber="onGetPhoneNumber" class="mybtn" >点击登录</button>
onGetPhoneNumber(e){ con(e); if == "getPhoneNumber:ok") { //允许授权 uni.request({ url: getApp().globalDa;/savePhone", method: 'POST', data: { "encrypted_data":e.detail.encryptedData, "iv":e.detail.iv, "openid":this.openid }, success: (res) => { // ..... } }); } }
说明:getUserProfile和getPhoneNumber,都需要用户点击操作。