首次调用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);
});
如果用户之前没有请求过授权,即用户接受或拒绝授权,openSetting里面就是空的,不会列出所有权限。清空授权只后用户的授权数据被清空,也就是openSetting空的情况。如果你需要用户主动授权,应该使用wx.authorize。openSetting一般是用户拒绝授权后重新开启授权使用。
openSetting只显示用户已授权或已拒绝的权限,不会列出所以权限。
我也遇到这个问题,但是在微信开发工具里面是正常的
我的小程序需要定位,用户拒绝定位后打开授权页面,然后授权后,点击返回又重新打开了授权页面,偶然性很大,三星S8+出现两次,市场人员反映一直出现
但是,现在是,啥都没列出来,是啥意思了。我第一次操作的时候,列出一个复选框+用户信息,我勾选并点击了确定,授权成功。然后,我在开发工具中缓存→清楚授权信息,再次授权发现,弹框如上图显示,就是空框子+【确定按钮】。按理说,我已经清除了授权,说明我未授权过任何的选项,它应该显示才对呀。而且,没有取消或者关闭按钮,无法关闭弹框。这是咋回事了?