清明節放假前一天 群裡突然炸鍋,說小程式所有用的昵稱全部變成了微信昵稱
當時我就
特麼不是說好13号嗎???
吓得我趕緊爬起來翻文檔(需要代碼直接往後翻)
wx.getUserProfile(Object object)
基礎庫 2.10.4 開始支援,低版本需做相容處理。
擷取使用者資訊。每次請求都會彈出授權視窗,使用者同意後傳回 userInfo。
getUserInfo擷取使用者資訊,預計自2021年4月13日起,getUserInfo将不再彈出彈窗,并直接傳回匿名的使用者個人資訊 即wx.getUserInfo接口的傳回參數不變,但開發者擷取的userInfo為匿名資訊。
為優化使用者的使用體驗,平台将進行以下調整:
2021年2月23日起,若小程式已在微信開放平台進行綁定,則通過wx.login接口擷取的登入憑證可直接換取unionID
2021年4月13日後釋出的小程式新版本,無法通過wx.getUserInfo與擷取使用者個人資訊(頭像、昵稱、性别與地區),将直接擷取匿名資料(包括userInfo與encryptedData中的使用者個人資訊),擷取加密後的openID與unionID資料的能力不做調整。此前釋出的小程式版本不受影響,但如果要進行版本更新則需要進行适配。
新增getUserProfile接口(基礎庫2.10.4版本開始支援),可擷取使用者頭像、昵稱、性别及地區資訊,開發者每次通過該接口擷取使用者個人資訊均需使用者确認。具體接口文檔:《getUserProfile接口文檔》
由于getUserProfile接口從2.10.4版本基礎庫開始支援(覆寫微信7.0.9以上版本),考慮到開發者在低版本中有擷取使用者頭像昵稱的訴求,對于未支援getUserProfile的情況下,開發者可繼續使用getUserInfo能力。開發者可參考getUserProfile接口文檔中的示例代碼進行适配。
請使用了wx.getUserInfo接口或的開發者盡快适配。開發者工具1.05.2103022版本開始支援getUserProfile接口調試,開發者可下載下傳該版本進行改造。
原因就像微信所說的
很多開發者在打開小程式時就通過元件方式喚起getUserInfo彈窗,如果使用者點選拒絕,無法使用小程式,這種做法打斷了使用者正常使用小程式的流程,同時也不利于小程式擷取新使用者。
這裡我會給出Uni-app的适配代碼,各位同學舉一反三(4.13号之前釋出的正式包暫不影響)
html
<button v-if="canUseGetUserProfile" hover-class="none" @tap="getUserProfile">微信登入</button>
<button v-else hover-class="none" open-type="getUserInfo" @getuserinfo="setUserInfo">微信登入</button>
data
canUseGetUserProfile: false
js
onLoad() {
//判斷是否存在getUserProfile方法
if (uni.getUserProfile) {
this.setData({
canUseGetUserProfile: true
})
}
},
//小程式授權api替換 getUserInfo 替換
getUserProfile() {
// 推薦使用wx.getUserProfile擷取使用者資訊,開發者每次通過該接口擷取使用者個人資訊均需使用者确認
// 開發者妥善保管使用者快速填寫的頭像昵稱,避免重複彈窗
uni.getUserProfile({
desc: \'用于完善會員資料\', // 聲明擷取使用者個人資訊後的用途,後續會展示在彈窗中,請謹慎填寫
success: (res) => {
//業務邏輯
}
})
},
這裡要注意
desc
為必填項,并且将來有可能會将資訊提示在彈窗内,是以要謹慎填寫;
getUserProfile
API不是通過
open-type
吊起 而是使用
@tap="getUserProfile"
或
bindtap="getUserProfile"
調用的
且必須為直接調用,不能通過其他函數回調調用
否則會報
getUserProfile:fail can only be invoked by user TAP gesture.
錯誤
如果你要問我看法
就像微信開發文檔裡的評論一樣 人事不幹一點 那麼多bug不修
有用的話麻煩點個贊啦 3Q
了解更多請關注 伴少年 麼麼哒