通过小程序右上角更多入口进入设置页设置用户信息权限后如何实时判定最新权限状态?
发布于 4 年前 作者 qianchao 10892 次浏览 来自 问答

步骤:

  1. 点击小程序右上角3个点弹出更能面板,点击设置进入设置页
  2. 主动关闭或者开启用户信息权限
  3. 返回上一页(比如个人中心、订单列表等需要用户权限的页面)

实际操作结果:

模拟器中:

  1. 个人中心页,通过getUserProfile获取用户信息(包括头像、性别、昵称),此时通过设置页面可以确认用户信息授权是开启状态
  2. 授权用户信息后进入其他页面(例如订单页),通过authorize方法可以获取到授权状态结果(已授权直接授权成功,不会弹窗)
  3. 返回到个人中心页,componentDidShow中再次authorize结果同2

调试(包括预览真机、和体验版)中

  1. 结果同模拟器中的结果1
  2. 返回个人中心页或者进入其他页面不能通过authorize获取最新的授权用户信息状态(authorize:fail 系统错误,错误码:-12006,auth deny)

导致的最直接问题:

虽然可以直接通过新方法getUserProfile获取用户并保存到缓存或者数据库,但是由于authorize不能获取用户授权状态,此时尴尬的是除非每次都要手动去getUserProfile,或者即使通过小程序右上角3个点进入设置页关闭或者开启用户信息授权,但是返回到之前页面还是没什么用

问题:这个时候如何获取最新的用户信息授权状态?

1 回复

没有解决方案,特别是用户信息这个目前除了每次更新必须用户授权,没其它办法,微信也不告诉开发者用户是否更新了昵称和头像。

回到顶部