2017-05-11 41 views
1

我正在通過我的應用使用'telprompt'撥打電話,但是當通話結束時,我想要顯示一個新的視圖控制器並點擊API獲取數據,所以我想要收到一個事件來打開彈出框並點擊API。iOS:在CallKit中無法撥出電話事件

我試過使用CallKit,但委託方法沒有被調用。

這是我的代碼。

#import <CallKit/CXCallObserver.h> 
#import <CallKit/CXCall.h> 

我都符合CXCallObserverDelegate

在viewDidLoad中:

CXCallObserver *callObserver = [[CXCallObserver alloc] init]; 
[callObserver setDelegate:self queue:nil]; 

委託方法:

- (void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call { 
    if (call.hasConnected) { 
     NSLog(@"********** voice call connected **********/n"); 

    } else if(call.hasEnded) { 

     NSLog(@"********** voice call disconnected **********/n"); 

    } 
} 

以上方法是沒有得到所謂的,正如你可以看到我已經設置委託,我不知道我做錯了什麼。

回答

2

在創建一個強大的引用/屬性到我的控制器後,我錯過了對callObserver對象的強有力的引用。

添加屬性並將callObserver對象放入其中。

@property (nonatomic, strong) CXCallObserver *callObserver; 

viewDidLoad中:

CXCallObserver *callObserver = [[CXCallObserver alloc] init]; 
[callObserver setDelegate:self queue:nil]; 
_callObserver = callObserver; 

現在的委託方法將被調用。

乾杯!