javascript - 使用 Cordova 处理 iOS 拨号器的最佳实践

标签 javascript ios cordova steroids

我将从环境 AppGyver Steroids(包括 Cordova 3.1 核心插件)开始。

所需功能:从 JavaScript Controller 调用电话并检测尝试是否成功或失败。

也有类似的问题,但它们要么针对 Android 实现,要么不解决功能的第二部分。

根据我的研究和尝试,window.open('tel:12345678', '_system') 是最有效的方法,无需求助于自定义插件(首选),但提供无法检测它是否成功或失败(拨号器是否打开就足够了)。

这些类型的答案让我得出这样的结论:我确实需要一个自定义 Cordova 插件来获取该信息,并且插件方法甚至可能是首选,因为它可以本地访问拨号器。

我的问题有两个, - 您是否知道另一种可以仅使用核心插件实现并返回成功/失败或接受回调的解决方案? - 如果您是经验丰富的 Cordova 用户,那么此任务的最佳实践是什么?是否有适用于 Android 和 iOS 的首选开源插件?关于 native 端应该是什么样子有什么建议吗?

谢谢

[编辑] 继续使用该插件,但获取有关拨号器的准确信息仍然存在问题。普遍接受的解决方案似乎集中在 [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel://"]]; (请参阅 this 问题进行一个讨论 - 不幸的是我无法发表评论然而)。然而,正如其他人也指出的那样,该功能可能会因多种原因而失败,有些是暂时的,因此,它不是检测设备是否具有实际拨号器的可靠方法。有了这个插件,我现在可以使用原生的但对于 iOS 原生开发来说是新的。有什么建议吗?

最佳答案

[回答您的编辑]如果您只想显示/隐藏没有拨号器的设备的通话功能,您可以进行一些浏览器嗅探来测试它是否是iPad/非手机。这通常不是一个好的解决方案,但由于您是在 iOS 上使用 Cordova 构建一些东西,您已经知道每种情况下的浏览器是什么。

关于javascript - 使用 Cordova 处理 iOS 拨号器的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22105947/

相关文章:

javascript - 为什么我的表单多次 POSTING 并且 Socket 发出多个事件?

javascript - 即使用户导航到另一个页面,是否可以让 `XMLHttpRequest` 对象保持事件状态?

facebook - Android Phonegap - 实现一个喜欢的按钮

ios - Cordova ,iOS 深色键盘?

javascript - 如何在 gatsby 中添加外部 Javascript?

javascript - 为什么 <h4> 和 <p> 元素中的文本没有一起出现?

ios - 突出显示并滚动到 UICollectionView 中的随机单元格

ios - 工作表内容中的行为不能影响父 View

ios - NSURLRequest 缓存策略

ios - 将数据离线保存在数据库中