2***@qq.com
2***@qq.com
  • 发布:2024-01-09 11:28
  • 更新:2024-04-26 22:04
  • 阅读:216

【报Bug】plus.android.requestPermissions一直返回-1 一直重复申请

分类:HTML5+

产品分类: HTML5+

HBuilderX版本号: 3.8.12

手机系统: Android

手机系统版本号: Android 11

手机厂商: 华为

手机机型: 荣耀20

打包方式: 云端

操作步骤:
<script>  
export default {  
  data() {  
    return {  
    };  
  },  
 onShow() {  
  plus.android.requestPermissions(  
                    ['android.permission.ACCESS_FINE_LOCATION'],   
                    function(resultObj) {  
                        console.log(resultObj)  
                        var result = 0;  
                        for (var i = 0; i < resultObj.granted.length; i++) {  
                            var grantedPermission = resultObj.granted[i];  
                            console.log('已获取的权限:' + grantedPermission);  
                            result = 1  
                        }  
                        for (var i = 0; i < resultObj.deniedPresent.length; i++) {  
                            var deniedPresentPermission = resultObj.deniedPresent[i];  
                            console.log('拒绝本次申请的权限:' + deniedPresentPermission);  
                            result = 0  
                        }  
                        for (var i = 0; i < resultObj.deniedAlways.length; i++) {  
                            var deniedAlwaysPermission = resultObj.deniedAlways[i];  
                            console.log('永久拒绝申请的权限:' + deniedAlwaysPermission, a);  
                            result = -1  
                        }  
                    },  
                    function(error) {  
                        console.log('申请权限错误:' + error.code + " = " + error.message);  
                    }  
                );  
 }  
};  
</script>

或是将其写成方法放在methods中,依旧会反复申请

预期结果:

plus.android.requestPermissions在放置于onshow周期中,当返回为-1时应该只申请一次

实际结果:

plus.android.requestPermissions在放置于onshow周期中,当返回为-1时会反复申请权限

bug描述:

plus.android.requestPermissions在放置于onshow周期中,当返回为-1时会反复申请权限,其他1或0正常
复现代码:
见复现代码

plus.android.requestPermissions在放置于单击事件中,则只会申请一次
示例代码:

<template>  
  <view>  
   <view>  
    <button @tap="test">测试</button>  
    </view>  
  </view>  
</template>  
export default {  
  data() {  
    return {  
    };  
  },  
 methods: {  
    test() {  
          plus.android.requestPermissions(  
                    ['android.permission.ACCESS_FINE_LOCATION'],   
                    function(resultObj) {  
                        console.log(resultObj)  
                        var result = 0;  
                        for (var i = 0; i < resultObj.granted.length; i++) {  
                            var grantedPermission = resultObj.granted[i];  
                            console.log('已获取的权限:' + grantedPermission);  
                            result = 1  
                        }  
                        for (var i = 0; i < resultObj.deniedPresent.length; i++) {  
                            var deniedPresentPermission = resultObj.deniedPresent[i];  
                            console.log('拒绝本次申请的权限:' + deniedPresentPermission);  
                            result = 0  
                        }  
                        for (var i = 0; i < resultObj.deniedAlways.length; i++) {  
                            // var deniedAlwaysPermission = resultObj.deniedAlways[i];  
                            console.log('永久拒绝申请的权限:' + deniedAlwaysPermission, a);  
                            result = -1  
                        }  
                    },  
                    function(error) {  
                        console.log('申请权限错误:' + error.code + " = " + error.message);  
                    }  
                );  
    }  
 }  
};  
</script>
2024-01-09 11:28 负责人:无 分享
已邀请:
3***@qq.com

3***@qq.com - others

请问解决了吗

要回复问题请先登录注册