如何在 ios phone phonegap 编程中处理呼出和呼入的应用程序?

Posted

技术标签:

【中文标题】如何在 ios phone phonegap 编程中处理呼出和呼入的应用程序?【英文标题】:how to handle the application on outgoing and incoming calls in ios phone phonegap programming? 【发布时间】:2015-06-12 10:19:33 【问题描述】:

如果有任何拨出电话和拨入电话,任何人都可以建议我如何处理 ios phonegap 中的应用程序。实际上我是基于电话间隙的应用程序的新手

目前我正在开发一个应用程序来在后台跟踪位置。如果出现任何呼入或呼出,我需要停止我的应用程序后台位置跟踪(呼入/呼出)并在通话结束后启动位置跟踪。

我参考了这个链接: How detect incoming and outgoing call end state? iphone

   [[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];

【问题讨论】:

【参考方案1】:

添加核心电话框架及其委托方法解决了我的要求。

   //Initialize the plugin
  - (void)pluginInitialize
   
   self.callCenter = [[CTCallCenter alloc] init];
   [self handleCall];

   [[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];
    


 //handle calls
 -(void)handleCall
   
    self.callCenter.callEventHandler = ^(CTCall *call)

    if ([call.callState isEqualToString: CTCallStateConnected])
    
        NSLog(@"call CTCallStateConnected");//Background task stopped
    
    else if ([call.callState isEqualToString: CTCallStateDialing])
    
        NSLog(@"call CTCallStateDialing");
    
    else if ([call.callState isEqualToString: CTCallStateDisconnected])
    
        NSLog(@"call CTCallStateDisconnected");//Background task started
    
    else if ([call.callState isEqualToString: CTCallStateIncoming])
    
        NSLog(@"call CTCallStateIncoming");
    
    else  
        NSLog(@"call NO");
    
  ;
 

【讨论】:

这是一个原生 iOS 解决方案,而不是真正的 PhoneGap 解决方案。 是的,在 phone-gap 中使用本机插件类在我的 phone-gap 应用程序中正常工作 嘿,你创建了一个插件?你能详细说明一下你是如何成功做到这一点的吗?

以上是关于如何在 ios phone phonegap 编程中处理呼出和呼入的应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

windows phone 7 - phonegap 停止 jquery.ajax

(ios + phone gap) - 使用仪器配置最终应用程序

有人知道如何在 Phonegap 和 Windows Phone 7 中使用动态磁贴吗? [关闭]

flex mobile 4.5 或 phone gap 中 ios 的音量控制

ios 中 App Store 'INVALID BINARY' 中的 Phone Gap 应用商店

如何在 Phonegap 中安装插件