小程序資訊

                                                                                  微信小程序如何適配用戶頭像昵稱獲取規則調整

                                                                                  小程序資訊 2022-11-22 17:40:21 | 閱讀:1518 | 作者:方維網絡 | 標簽:小程序定制開發    
                                                                                  小程序調整

                                                                                  相信大家都收到這個通知了,關于微信小程序獲取用戶頭像和昵稱這個問題,可謂變化頻繁,可真苦了開發者,每次重新提交代碼,都需要重新適配。
                                                                                  最開始是使用wx.getUserInfo ,后面改為wx.getUserProfile,現在又變了。

                                                                                  調整說明

                                                                                  自 2022 年 10 月 25 日 24 時后(以下統稱 “生效期” ),用戶頭像昵稱獲取規則將進行如下調整:

                                                                                  自生效期起,小程序 wx.getUserProfile 接口將被收回:生效期后發布的小程序新版本,通過 wx.getUserProfile 接口獲取用戶頭像將統一返回默認灰色頭像,昵稱將統一返回 “微信用戶”。生效期前發布的小程序版本不受影響,但如果要進行版本更新則需要進行適配。
                                                                                  自生效期起,插件通過 wx.getUserInfo 接口獲取用戶昵稱頭像將被收回:生效期后發布的插件新版本,通過 wx.getUserInfo 接口獲取用戶頭像將統一返回默認灰色頭像,昵稱將統一返回 “微信用戶”。生效期前發布的插件版本不受影響,但如果要進行版本更新則需要進行適配。通過 wx.login 與 wx.getUserInfo 接口獲取 openId、unionId 能力不受影響。
                                                                                  「頭像昵稱填寫能力」支持獲取用戶頭像昵稱:如業務需獲取用戶頭像昵稱,可以使用「頭像昵稱填寫能力」(基礎庫 2.21.2 版本開始支持,覆蓋iOS與安卓微信 8.0.16 以上版本),具體實踐可見下方《最佳實踐》。
                                                                                  小程序 wx.getUserProfile 與插件 wx.getUserInfo 接口兼容基礎庫 2.27.1 以下版本的頭像昵稱獲取需求:對于來自低版本的基礎庫與微信客戶端的訪問,小程序通過 wx.getUserProfile 接口將正常返回用戶頭像昵稱,插件通過 wx.getUserInfo 接口將正常返回用戶頭像昵稱,開發者可繼續使用以上能力做向下兼容。

                                                                                  對于上述 3,wx.getUserProfile 接口、wx.getUserInfo 接口、頭像昵稱填寫能力的基礎庫版本支持能力詳細對比見下表:

                                                                                  小程序表

                                                                                  從上表可看出  沒有一個是全部通用的,那怎么辦呢?只能寫3種代碼進行適配了。代碼如下
                                                                                  const version = wx.getSystemInfoSync().SDKVersion
                                                                                  
                                                                                  if (compareVersion(version, '2.21.1') >= 0) {
                                                                                    //使用獲取昵稱頭像接口
                                                                                  } else {
                                                                                    //使用wx.getUserProfile接口
                                                                                  }
                                                                                  
                                                                                  因為wx.getUserInfo 是非常老的接口,基本不用適配,正常用戶都升級了。
                                                                                  
                                                                                  獲取頭像代碼
                                                                                  
                                                                                  <button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
                                                                                      <image class="avatar" src="{{avatarUrl}}"></image>
                                                                                   </button>
                                                                                  

                                                                                  onChooseAvatar(e) {
                                                                                      const { avatarUrl } = e.detail 
                                                                                      this.setData({
                                                                                        avatarUrl,
                                                                                      })
                                                                                  }

                                                                                  獲取昵稱代碼

                                                                                  <input type="nickname" class="weui-input" placeholder="請輸入昵稱"/>

                                                                                  input type為nickname即可 還是挺方便的

                                                                                  獲取昵稱有個坑是,他獲取的只是微信文件等,要讓別人看到,還是需要上傳到服務器,所以需要多一步。
                                                                                   
                                                                                   
                                                                                  
                                                                                  天天爽夜夜爽夜夜爽精品视频_久久青青草原亚洲av无码_欧美日韩亚洲一区二区三区4k岛国_kkkk国产在线播放