uni-app uni.makePhoneCall 不授权 但是不走fail
uni-app uni.makePhoneCall 不授权 但是不走fail
类别 | 信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Mac |
PC版本号 | 13.0.1 |
HBuilderX | 正式 |
HBuilderX版本 | 3.8.12 |
手机系统 | 全部 |
手机厂商 | 华为 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
测试过的手机:
华为 mate20pro
操作步骤:
- 弹框的时候 不授权
预期结果:
- 能走fail
实际结果:
- 不走fail
bug描述:
- uni.makePhoneCall 不授权 但是不走fail 还是报ok
更多关于uni-app uni.makePhoneCall 不授权 但是不走fail的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
fail Function 否 是接口调用失败的回调函数,不是取消授权的回调
https://ext.dcloud.net.cn/plugin?id=594 ,可以在页面onShow判断 android.permission.CALL_PHONE 权限
更多关于uni-app uni.makePhoneCall 不授权 但是不走fail的实战教程也可以访问 https://www.itying.com/category-93-b0.html
chooseImage 授权失败 会走fail 会报没有权限 还以为他们是相似的
关于uni.makePhoneCall在不授权时未触发fail回调的问题,这可能是由于Android系统权限处理机制导致的。以下是关键点分析:
- 权限检查机制:
- Android 6.0+采用运行时权限,但电话权限(READ_PHONE_STATE)属于危险权限
- 实际拨打电话需要CALL_PHONE权限,但uni-app可能未正确处理权限拒绝场景
- 可能原因:
- 部分厂商系统会默认允许基础电话功能
- 权限拒绝后系统仍返回成功状态码
- fail回调仅在明确拒绝时触发,而系统可能返回模糊状态
- 建议解决方案:
uni.getSystemInfo({
success(res) {
if(res.platform === 'android') {
uni.authorize({
scope: 'scope.phone',
success() {
uni.makePhoneCall({ phoneNumber: '10086' })
},
fail() {
console.log('权限被拒绝')
}
})
} else {
uni.makePhoneCall({ phoneNumber: '10086' })
}
}
})