100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 微信小程序getUserInfo无法获取用户信息

微信小程序getUserInfo无法获取用户信息

时间:2022-02-16 12:03:15

相关推荐

微信小程序getUserInfo无法获取用户信息

前言

4月13日后发布的小程序新版本,无法通过wx.getUserInfo与<button open-type="getUserInfo"/>获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息。

解决办法

1. 使用wx.getUserProfile更换wx.getUserInfo

官方示例

2. 本人因为小程序使用太多wx.getUserInfo,更换起来太麻烦了,所以我选择使用wx.getUserProfile重写wx.getUserInfo,让wx.getUserInfo既能拥有最新API的功能,还能兼容老的功能。

放到app.js最前面

if (wx.getUserProfile) {/*** isCache 是否用户授权第一次,就把用户信息放到缓存中,以后不用获取最新的,直接拿缓存*/let isCache = trueObject.defineProperty(wx, 'getUserInfo', {configurable: true,value: function (callback) {if (wx.authorizationInfo) {callback.success(wx.authorizationInfo)return;} else if (isCache) {let storageInfo = wx.getStorageSync('authorizationInfo')if (storageInfo) {wx.authorizationInfo = storageInfocallback.success(wx.authorizationInfo)return;}}let success = callback.successcallback.success = function (e) {wx.authorizationInfo = eif (isCache) {wx.setStorageSync('authorizationInfo', e)}success(e)}wx.getUserProfile({desc: '展示用户信息',...callback});}})}

开发注意

使用wx.getUserProfile不能在bindgetuserinfo事件下面

<!-- 错误的方式 --><button open-type="getUserInfo" bindgetuserinfo="getUserInfo">授权</button><!-- 正确的方式 --><button bindtap="getUserInfo">授权</button>

desc字段不能为空

wx.getUserProfile({desc: '展示用户信息', //不能为空success(e){}})

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。