第一次拒绝授权后wx.authorize不会弹出提示窗口


关键词

微信小程序 authorize 拒绝授权

摘要

本文介绍在微信小程序中第一次拒绝授权后,再去调用wx.authorize()会发现系统不会弹出提示窗口。

如题所示,如果在请求某权限时,用户在弹出的提示框中选择了拒绝,那么下次我们再调wx.authorize()去获取权限时,是不会有提示框弹出来的,直接返回一个错误给你,在它的fail回调中可以捕捉到如下错误信息:

errMsg: "authorize:fail 系统错误,错误码:-12006,auth deny"

wx.authorize()官方文档的描述是这样的:

提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。

这个文档说的得不全,他只说了之前已同意的情况。这无疑会让人理解为:如果之前没有授权或之前已拒绝授权的时候,均会弹出提示窗口。而实际情况如我们上面看到的,已拒绝授权的不会有弹窗。

微信的文档很垃圾,这是共识,多骂无益,继续往下看!

如果我们要使用某个权限,比如wx.getUserInfo,如果我们直接调用它,它会怎么运行呢?首先他会判断授权情况(scope.userInfo),如果值为true,则无弹窗,返回成功。如果值为false,则无弹窗,返回失败。如果值为undefined,则弹出提示窗口,请用户选择同意授权或拒绝。你看看,这个过程和直接调用wx.authorize()是不是完全一样的?所以说,你还去调wx.authorize()有何意义呢?

解决方案是什么呢?还是回归到getSetting和openSetting吧!

好了,关于第一次拒绝授权后wx.authorize不会弹出提示窗口,本文就介绍这么多,希望对大家有所帮助!

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权


如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« 微信小程序中调用wx.getSetting可以获取到哪些权限设置