gpt4 book ai didi

ios - Cordova 试图调用电话号码

转载 作者:IT王子 更新时间:2023-10-29 08:10:25 25 4
gpt4 key购买 nike

我想在 iOS 中调用电话号码,但我只有模拟器和 iPod Touch 可以测试。

代码使用了以下内容:

window.location.href = 'tel:01234567890';

在 Android 上工作正常,但在 iOS 上它死于:

Failed to load webpage with error: The URL can't be shown

现在,我确实意识到以前有人问过这个问题,但一段时间前的普遍共识是“它不起作用,你需要使用插件”。虽然一段时间以来没有太多关于此的问题,但有哪些问题似乎表明它在以编程方式执行时有效(如上面的 window.location.href)。我已经尝试了 iOS PhoneDialer 和同一插件的更新版本,但两者在 XCode 中都有错误(ARC forbids explicit message send of 'release')——有点麻烦,我可以让它运行,但是后来 PhoneGap 没有找到插件——我真的觉得我用这种方法碰壁了,我不敢相信这么简单的事情需要这么夸张的东西。

我知道出于安全原因你不能自动拨号/自动调用号码,但我需要做的就是打开预填充号码的拨号器,这肯定与 mailto:info@ 没有什么不同example.com 链接打开您的电子邮件客户端并预先填充发件人?

所以,我的问题是:

  • 最近对 PhoneGap、iOS 或 XCode 的更新是否改变了这一点?
  • 或者,是不是我无法在 iPod 或模拟器上执行此操作,而它在 iPhone 上可以正常工作?
  • 我该如何解决? :)

最佳答案

您没有指定您使用的是哪个版本的 Cordova,所以我假设版本 > 3。

确保 InAppBrowser ,自版本 3 起的 pluginis installed 然后通过 Javascript 调用它来打开链接,如下所示:

window.open('tel:12345678', '_system')

_system 将使用系统自己的浏览器打开它,这反过来将打开调用对话框,如果您将它用于 http://maps.apple.com/ 它将在 map 应用程序中打开,并且对于其他应用程序类似打开特殊网址。

备注:

  • in the docs of the InAppBrowser plugin 所述,window.open 函数不会自动设置。你必须自己做:window.open = cordova.InAppBrowser.open;。相反,您可以直接使用 cordova.InAppBrowser.open('tel:12345678', '_system');
  • 确保您的电话号码中没有任何空格(+前缀没问题)。例如,您可以使用如下函数,假设 num 是一个字符串。

功能:

function placeCall(num) {
if (window.cordova) {
cordova.InAppBrowser.open('tel:' + num.replace(/\s/g,''), '_system');
}
}

关于ios - Cordova 试图调用电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19639663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com