前些天微信小程序修改了獲取用戶的接口,之前是啟動小程序之后如果調用wx.getUserInfo會彈出對話框詢問是否允許授權獲取用戶信息的接口,允許授權之后就可以獲取到用戶信息。
但是小程序改過登錄之后,如果調用這個接口,它只會檢查你之前是否已經授權獲取用戶信息,如果沒有,就會走進fail的函數,默認導致獲取用戶信息失敗,而不會彈出對話框詢問。如果檢測到了之前的授權,可以獲取到用戶信息。
目前只影響體驗版、開發版的小程序,不影響線上版本,但是只是目前。小程序社區說會逐步回收線上版本的wx.getUserInfo的接口授權。
按照微信的說法,是為了收縮獲取用戶信息的方法,只通過點擊button按鈕來讓用戶在有需要使用用戶信息的時候引導用戶主動授權。
使用button獲取用戶信息的方法參考https://developers.weixin.qq.com/miniprogram/dev/component/button.html
<button open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="onGotUserInfo">獲取用戶信息</button>
給button的
open-type設置為
getUserInfo,點擊調用
onGotUserInfo函數,就會彈出詢問是否允許授權,如果允許,返回的數據中就會包含用戶信息,並且將允許獲取用戶信息的授權進行緩存記錄。在這之后可以直接使用wx.getUserInfo來獲取用戶信息了,因為它能找到允許獲取的授權緩存。