自2021年4月13日起,微信在小程序中做出了一项重要调整:新版本小程序无法通过wx.getUserInfo
接口获取用户的个人信息(如头像、昵称、性别和地区),而是直接获取匿名数据。这一变化的核心是引入了一个新的接口——getUserProfile
。此接口从基础库2.10.4版本开始支持,旨在更好地保护用户隐私,每次通过该接口获取用户个人信息都需要用户确认。
旧版与新版方法对比
- 旧版方法: 使用
wx.getUserInfo
接口。这个方法先检查用户是否已授权,如果已授权,则可以直接调用wx.getUserInfo
获取用户信息。 - 新版方法: 首先在
onLoad
中获取用户的openId
,然后查询数据库以判断用户是否已授权。如果未授权,则显示授权提示框。
实施新版授权流程
- 触发授权事件: 当用户点击授权登录时,触发事件并调用
getUserProfile
方法弹出授权弹框。根据返回的消息判断用户是否点击了授权。如果用户拒绝授权,显示提示信息;如果用户接受授权,更新数据库中的授权信息并显示页面内容。 - 更新用户授权信息: 首先获取当前用户的
openId
,然后查询数据库。如果用户未授权,则新增记录;如果用户已授权,则更新记录。记录中包括用户信息如_openId、头像、昵称等。
结论
随着微信对小程序用户信息接口的调整,开发者需要适应这些变化,保证应用的合规性和用户隐私的保护。通过上述步骤,开发者可以成功实现新版的用户授权流程,同时确保用户体验的顺畅和数据的安全。