uni-app iOS 手机调用 uni.makePhoneCall 无效
uni-app iOS 手机调用 uni.makePhoneCall 无效
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | window 11 | HBuilderX |
示例代码:
uni.makePhoneCall({
phoneNumber: '18888889999',
complete:(e)=>{
console.log(e)
}
})
操作步骤:
上述代码直接 使用hbuilderx4.06自定义基座中
预期结果:
跳转到拨号页面
实际结果:
无任何反应
bug描述:
调用uni.makePhoneCall方法不跳转到拨号页面
complete回调中显示 “errMsg”: “makePhoneCall:ok”
先把电话号码正则跑一下,const phone = val.replace(/[^0-9]+/g, ‘’); val就是你要拨打的电话号码,之后在调用uni.makePhoneCall这个方法,就可以拨打成功了
感谢反馈,已复现该问题。
ios17 都有这个问题。何时修复啊?
ios iPhone iOS 17.2模拟器 跑项目,点击打电话,直接跑了成功回调,显示 {
“errMsg”: “makePhoneCall:ok”
},
预期结果:
跳转到拨号页面
实际结果:
无任何反应
bug描述:
调用uni.makePhoneCall方法不跳转到拨号页面
complete回调中显示 “errMsg”: “makePhoneCall:ok”
——————————————————
按这个方法操作了,还是无效:const phone = val.replace(/[^0-9]+/g, ‘’); val就是你要拨打的电话号码,之后在调用uni.makePhoneCall
请问有朋友成功解决了吗?
iOS18
拨打电话:uni.makePhoneCall({phoneNumber: pPN}); 没反应
升级跳转商店:plus.runtime.openURL(encodeURI(this.newVerInfo.uploadAddress)); 没反应
报错内容是:BUG IN CLIENT OF UIKIT: The caller of UIApplication.openURL(:) needs to migrate to the non-deprecated UIApplication.open(:options:completionHandler:). Force returning false (NO).
在 uni-app 中,uni.makePhoneCall
是一个用于调用手机拨号功能的 API。如果你在 iOS 设备上调用 uni.makePhoneCall
无效,可能有以下几个原因和解决方法:
1. 检查权限
在 iOS 上,调用拨号功能需要用户授权。确保你的应用已经获取了拨打电话的权限。
uni.makePhoneCall({
phoneNumber: '1234567890',
success: function(res) {
console.log('拨打电话成功');
},
fail: function(err) {
console.log('拨打电话失败', err);
}
});
2. 检查电话号码格式
确保你传入的电话号码格式正确。电话号码应该是纯数字,不要包含其他字符(如空格、括号等)。
3. 检查设备是否支持
确保你的设备支持拨打电话功能。某些模拟器或设备可能不支持拨打电话。
4. 检查 uni-app 版本
确保你使用的是最新版本的 uni-app。旧版本可能存在 bug,更新到最新版本可能会解决问题。
5. 检查 iOS 版本
某些 iOS 版本可能存在兼容性问题。确保你的设备运行的是较新的 iOS 版本。
6. 检查网络连接
在某些情况下,网络连接问题可能会导致拨打电话失败。确保设备有正常的网络连接。
7. 检查代码逻辑
确保你的代码逻辑正确,没有其他代码干扰 uni.makePhoneCall
的执行。
8. 使用原生代码
如果以上方法都无法解决问题,可以考虑使用原生代码来实现拨打电话功能。你可以在 uni-app 中使用 plus.device.dial
来调用原生拨号功能。
plus.device.dial('1234567890', false, function() {
console.log('拨打电话成功');
}, function(err) {
console.log('拨打电话失败', err);
});
9. 调试信息
在开发过程中,可以使用 console.log
或 uni.showToast
来输出调试信息,帮助你定位问题。
uni.makePhoneCall({
phoneNumber: '1234567890',
success: function(res) {
console.log('拨打电话成功');
uni.showToast({
title: '拨打电话成功',
icon: 'none'
});
},
fail: function(err) {
console.log('拨打电话失败', err);
uni.showToast({
title: '拨打电话失败',
icon: 'none'
});
}
});