uni-app iOS 手机调用 uni.makePhoneCall 无效

发布于 1周前 作者 nodeper 来自 Uni-App

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”


7 回复

先把电话号码正则跑一下,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.loguni.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'
        });
    }
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!