小程序启动后首次调用 wx.getUserInfo() 会触发【微信授权】界面,如果用户不小心选择了【拒绝】,则 wx.getUserInfo() 会得到报错的结果 'getUserInfo:fail auth deny'。此后再调用 wx.getUserInfo() 的话只会直接得到 'getUserInfo:fail' 的结果。
现在的问题是,我会在界面上向用户解释【授权】的必要性,但如何操作才能再次触发【微信授权】界面呢?
目前我找到的唯一方法就是在【微信-发现-小程序】里面删除小程序的条目,再设法重新进入小程序,但这个体验过程对用户来说是非常不友好的,有没有什么办法可以在程序里直接触发【微信授权】界面呢?
你说的不友好是针对你来说,但是如果用户就是拒绝授权,你一直让他授权也是不友好的,所以微信侧应该根据一定的规则来判断是否再次发起授权,如果用户拒绝授权,你应该做个页面,并使用 https://mp.weixin.qq.com/debug/wxadoc/dev/api/setting.html#opensettingobject ,让用户去选择开启。