wx.openSetting 二次授权Bug
发布于 5 年前 作者 fang04 4084 次浏览 来自 问答

首次调用wx.openSetting 授权时,弹框正常,也能成功授权。但当我在开发者工具中,清除授权数据后,再次调用这个方法去授权Bug出现了。如下:

1 弹框只显示一个【确定】按钮,无法取消或者关闭。

2 无法显示用户信息和地理位置信息的复选框

3 点击确定后,授权失败,也没有任何错误提示。

这到底是什么原因了?

二次授权的代码:

return new Promise(function (resolve, reject) {

        wx.openSetting({

          success: function (data) {

              resolve(data);

          },

          fail:function(data){

              reject(data);

          }

        });

      }).then(

  function(data){//授权成功执行代码  

    wx.switchTab({

      url:’./my’

    });

  },

  function(data){//授权失败执行代码

        //提示未授权可能造成的一些影响

        console.log(data);

      });

5 回复

但是,现在是,啥都没列出来,是啥意思了。我第一次操作的时候,列出一个复选框+用户信息,我勾选并点击了确定,授权成功。然后,我在开发工具中缓存→清楚授权信息,再次授权发现,弹框如上图显示,就是空框子+【确定按钮】。按理说,我已经清除了授权,说明我未授权过任何的选项,它应该显示才对呀。而且,没有取消或者关闭按钮,无法关闭弹框。这是咋回事了?

我也遇到这个问题,但是在微信开发工具里面是正常的

如果用户之前没有请求过授权,即用户接受或拒绝授权,openSetting里面就是空的,不会列出所有权限。清空授权只后用户的授权数据被清空,也就是openSetting空的情况。如果你需要用户主动授权,应该使用wx.authorize。openSetting一般是用户拒绝授权后重新开启授权使用。

我的小程序需要定位,用户拒绝定位后打开授权页面,然后授权后,点击返回又重新打开了授权页面,偶然性很大,三星S8+出现两次,市场人员反映一直出现

openSetting只显示用户已授权或已拒绝的权限,不会列出所以权限。

回到顶部