微信小程序 getUserProfile真機調試中獲取不到用戶真實頭像和暱稱?getUserProfile獲取不到頭像地址

1、正確寫法,但獲取不到

最近開發微信小程序,需要使用獲取用戶的頭像信息,使用getUserProfile 怎麼都獲取不到,

  getInfo(){
       wx.getUserProfile({
          desc: '獲取用戶信息',
          force: true,
          success:(res)=>{
            debugger
            this.setData({
            //需要在data中定義一個userInfo空對象用來接收信息        
              userInfo:res.userInfo
            })  
          } ,
          fail:(res)=>{
            console.log('222',res)
          }    
        })
    }, 
這個 userInfo 中包含了用戶的頭像信息,但是是一個默認的灰色頭像。
後來發現原來是他規則改了

 

2、新的寫法是:

頭像暱稱填寫

從基礎庫 2.21.2 開始支持

當小程序需要讓用戶完善個人資料時,可以通過微信提供的頭像暱稱填寫能力快速完善。

根據相關法律法規,爲確保信息安全,由用戶上傳的圖片、暱稱等信息微信側將進行安全檢測,組件從基礎庫2.24.4版本起,已接入內容安全服務端接口(mediaCheckAsyncmsgSecCheck),以減少內容安全風險對開發者的影響。

使用方法

頭像選擇

需要將 button 組件 open-type 的值設置爲 chooseAvatar,當用戶選擇需要使用的頭像之後,可以通過 bindchooseavatar 事件回調獲取到頭像信息的臨時路徑。

從基礎庫2.24.4版本起,若用戶上傳的圖片未通過安全監測,不觸發bindchooseavatar 事件。

avatar

暱稱填寫

需要將 input 組件 type 的值設置爲 nickname,當用戶在此input進行輸入時,鍵盤上方會展示微信暱稱。

從基礎庫2.24.4版本起,在onBlur 事件觸發時,微信將異步對用戶輸入的內容進行安全監測,若未通過安全監測,微信將清空用戶輸入的內容,建議開發者通過 form 中form-type 爲submit 的button 組件收集用戶輸入的內容。

avatar

在開發者工具上,input 組件是用 web 組件模擬的,因此部分情況下並不能很好的還原真機的表現,建議開發者在使用到原生組件時儘量在真機上進行調試。

代碼示例

<button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
  <image class="avatar" src="{{avatarUrl}}"></image>
</button> 
<input type="nickname" class="weui-input" placeholder="請輸入暱稱"/>
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'

Page({
  data: {
    avatarUrl: defaultAvatarUrl,
  },
  onChooseAvatar(e) {
    const { avatarUrl } = e.detail 
    this.setData({
      avatarUrl,
    })
  }
})

 

 

 

附屬兩個鏈接:

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/userProfile.html

https://developers.weixin.qq.com/community/develop/doc/00022c683e8a80b29bed2142b56c01

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章