收藏
回答

wx.getUserProfile 模拟器,真机调试无法使用

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.getUserProfile 微信iOS客户端 8.0.4 2.16.0

回答关注问题邀请回答
收藏

2 个回答

  • 安逸
    安逸
    2021-04-20

    参考官方例子做一下兼容就可以啦

    <view class="container">
      <view class="userinfo">
        <block wx:if="{{!hasUserInfo}}">
          <button wx:if="{{canIUseGetUserProfile}}" bindtap="getUserProfile"> 获取头像昵称 </button>
          <button wx:else open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>
        </block>
        <block wx:else>
          <image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image>
          <text class="userinfo-nickname">{{userInfo.nickName}}</text>
        </block>
      </view>
    </view>
    
    
    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
        })
      },
    })
    
    2021-04-20
    有用 2
    回复
  • 哈哈哈
    哈哈哈
    2021-04-19
    wx.canIUse('getUserProfile')
    这样试试
    而且 获取用户信息。页面产生点击事件(例如 button 上 bindtap 的回调中)后才可调用;
    需要绑定到元素使用bindtap触发
    


    2021-04-19
    有用
    回复 2
    • 星火燎原
      星火燎原
      2021-04-19
      这个就是在点击getphonenumer的逻辑里面,关键不是调用canIUse而是调用getUserProfile 每次都fail
      2021-04-19
      回复
    • 哈罗哈皮
      哈罗哈皮
      2021-04-20回复星火燎原
      要放到点击事件里面,getphonenumer应该属于api调用
      2021-04-20
      1
      回复
登录 后发表内容