步骤:
- 点击小程序右上角3个点弹出更能面板,点击设置进入设置页
- 主动关闭或者开启用户信息权限
- 返回上一页(比如个人中心、订单列表等需要用户权限的页面)
实际操作结果:
模拟器中:
- 个人中心页,通过getUserProfile获取用户信息(包括头像、性别、昵称),此时通过设置页面可以确认用户信息授权是开启状态
- 授权用户信息后进入其他页面(例如订单页),通过authorize方法可以获取到授权状态结果(已授权直接授权成功,不会弹窗)
- 返回到个人中心页,componentDidShow中再次authorize结果同2
调试(包括预览真机、和体验版)中:
- 结果同模拟器中的结果1
- 返回个人中心页或者进入其他页面不能通过authorize获取最新的授权用户信息状态(authorize:fail 系统错误,错误码:-12006,auth deny)
导致的最直接问题:
虽然可以直接通过新方法getUserProfile获取用户并保存到缓存或者数据库,但是由于authorize不能获取用户授权状态,此时尴尬的是除非每次都要手动去getUserProfile,或者即使通过小程序右上角3个点进入设置页关闭或者开启用户信息授权,但是返回到之前页面还是没什么用
问题:这个时候如何获取最新的用户信息授权状态?
没有解决方案,特别是用户信息这个目前除了每次更新必须用户授权,没其它办法,微信也不告诉开发者用户是否更新了昵称和头像。