收藏
回答

wx.openSetting 二次授权Bug

问题模块
审核

首次调用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);


      });


最后一次编辑于  2017-08-16
回答关注问题邀请回答
收藏

5 个回答

  • 严光利
    严光利
    2017-12-13

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

    2017-12-13
    赞同
    回复
  • 范范范先森
    范范范先森
    2017-11-30

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

    2017-11-30
    赞同
    回复
  • 晨
    2017-08-17

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

    2017-08-17
    赞同
    回复
  • 角谷静
    角谷静
    2017-08-16

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

    2017-08-16
    赞同
    回复
  • 晨
    2017-08-16

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

    2017-08-16
    赞同
    回复