如何使用PhoneGap在iOS和Windows设备上检测来电?

6

我已经成功开发了Android应用程序。在其中,我使用了电话拦截器来识别来电。据我所知,这个插件只支持Android系统。那么,在iOS和Windows手机上,我应该使用什么方法呢?


如果您正在开发玩具应用程序,并且知道它仅支持Android,则应下载Xcode并在OS上尝试。 - Lester Vargas
1
在iOS中,如果您的应用程序在前台运行,您可以收到有关即将到来的电话打断您的应用程序的通知,但您无法了解有关通话的任何信息或阻止通话进入。 - Paulw11
我正在尝试在我的应用程序中播放音乐时,在来电时暂停音乐...这可能吗? - Albert
嘿,@Albert,我认为这应该是iOS或任何手机操作系统的内置功能。你的音乐在来电时仍在播放吗? - Avinash Jadhav
@Albert,在本地开发中,有一种方法可以告诉应用程序何时进入前台(例如呼叫或其他事件),对于Cordova开发,您可以为iOS制作插件以实现该功能。 - HardikDG
是的,实际上插件无法获取通话详细信息。这些是 PhoneGap 的一些限制。即使有可用的插件,也不知道苹果公司会支持多少,或者即使您成功访问这些信息,是否会被应用商店批准。 - Avinash Jadhav
3个回答

2
在iOS中,你无法访问这些细节。每个应用程序都在沙盒中运行,对于沙盒外部的访问受到严格限制。因此,无法跟踪来电。

0

电话陷阱只适用于安卓系统...但是这个分支并不打算将其应用到iOS上:https://github.com/ElieSauveterre/cordova-phone-call-trap - davidbonachera

0

您的IOS应用程序无法获取有关电话通话的通话详细信息


作为一个PhoneGap应用程序,您只能使用此重复问题中提到的解决方案
引用:
所有你能做的就是监听暂停事件。
document.addEventListener("pause", yourCallbackFunction, false);
当有来电或开始通话时,将触发此事件。
或者您可以查看电话监听器插件,并尝试为iOS编写它https://github.com/devgeeks/PhoneListener
作为原生应用程序,您可以使用来自 停止 iPhone 接收来电时播放音乐 的答案,通知您何时接收、结束和连接呼叫。
引用:

使用以下通知以查找呼叫状态,并停止播放器。添加 CoreTelephony.framework。

#import <CoreTelephony/CTCall.h>

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(callReceived:) name:CTCallStateIncoming object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(callEnded:) name:CTCallStateDisconnected object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(callConnected:) name:CTCallStateConnected object:nil];

关于原生应用的另一个好答案是查看如何以编程方式检测呼入电话,其中有更详细的示例。


期望的解决方案是使用PhoneGap,而不是原生iOS。 - Avinash Jadhav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接