我将从环境AppGyver Steroids(包括Cordova 3.1核心插件)开始。用科尔多瓦处理iOS拨号器的最佳做法
需要的功能:从javascript控制器拨打电话并检测尝试成功或失败。
也有类似的问题,但它们要么是Android实施,要么不涉及功能的第二部分。
从我所研究和尝试的方法来看,window.open('tel:12345678', '_system')
是最有效的方法,不需要使用自定义插件(首选),但无法检测它是成功还是失败(拨号器是否打开)。
这些类型的答案使我得出结论,我确实需要一个自定义Cordova插件才能获取该信息,并且插件方法甚至可能是首选,因为它可以本地访问拨号程序。
我的问题是2倍, - 你知道另一个解决方案,可以用核心插件实现,或者返回成功/失败或接受他们的回调? - 如果您是一位经验丰富的科尔多瓦用户,该任务会被视为最佳实践?有没有一种首选的开源插件可以在Android和iOS上运行?关于本机应该是什么样子的任何建议?
感谢
[编辑] 就做了插件,但获取有关拨号准确的信息仍然有问题。普遍接受的解决方案似乎集中在[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel://"]];
(参见this问题的一个讨论 - 不幸的是我还不能评论)。然而,正如其他人已经指出的那样,该功能可能由于多种原因(一些是暂时的)而失败,并且因此不是检测该设备是否具有实际拨号器的可靠方式。通过插件,我现在可以使用原生的,但新的iOS本地开发。有什么建议么?
好吧,编辑中的解决方案似乎实际上对我来说很安静,但我认为你的解决方案也可以工作;我假设你的意思是'if(navigator.userAgent.toLowerCase()。match(/ ipad /))'。已经看到,在几个地方,但正如你所说,它似乎有点哈克。我希望看到更好的例子,本机地询问该设备是否可以拨打电话,最好甚至可以接听诸如Skype或其他可以打电话的应用程序。 –