安卓APP
我遇到的情况是这样的:
用户点击拨打电话后,弹出请求拨打电话的权限,如果用户允许就正常,如果用户拒绝,我理解的是,用户关闭了拨打电话的权限,不是应该走fail失败函数嘛?但是不走,不清楚为什么。在点击拨打电话还是会走uni.makePhoneCall的sucess回调函数,
所以最后情况是:点击拨打电话,并没有跳转到拨号界面,但是会执行sucess回调函数。
页面的情况就是:点击拨打电话,无任何反应。
错误代码:
uni.makePhoneCall({
phoneNumber: "10086",//仅为示例
success(res) {
//用户拒绝权限后任然会走这个函数,
console.log("拨打电话成功",res)
},
fail(err) {
console.log("拨打电话失败",'err')
}
});
最后是这么解决的:
plus.android.requestPermissions(
["android.permission.CALL_PHONE"],
function(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);
result = -1
}
console.log(result);
if(result == 1){
uni.makePhoneCall({
phoneNumber: "10086",//电话号码
success(ress) {
console.log("拨打电话成功",ress)
},
fail(err) {
console.log("拨打电话失败",'err')
}
});
}else{
uni.showToast({
title:"请开启拨号权限",
icon:"error",
})
}
},
function(error) {
console.log('申请权限错误:' + error.code + " = " + error.message);
}
);
代码是我复制过来的,看看哪可以优化在改,直接复制过去是可以运行的。