清明節放假前一天 群里突然炸鍋,說小程序所有用的昵稱全部變成了微信昵稱
當時我就
特么不是說好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與
原因就像微信所說的
很多開發者在打開小程序時就通過組件方式喚起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
了解更多請關注 伴少年 么么噠