2016-09-21 124 views
5

我剛剛在我們的VOIP應用程序中實現了CallKit,但我正在努力使得來電UI顯示出來。iOS 10 Callkit不顯示來電UI

在我的實驗我剛剛創建了一個簡單的方法應該顯示來電UI,見下圖:

CXProviderConfiguration * configuration = [[CXProviderConfiguration alloc] initWithLocalizedName:@"Bitcall"]; 
CXProvider *callkitProvider = [[CXProvider alloc] initWithConfiguration: configuration]; 
[callkitProvider setDelegate:self queue:nil]; 
CXCallUpdate *update = [[CXCallUpdate alloc] init]; 
update.localizedCallerName = @"Ravadam Patel"; 
[callkitProvider reportNewIncomingCallWithUUID:[NSUUID UUID] update:update completion:^(NSError * _Nullable error) { 
    if (error) { 
     NSLog(@"Error: %@", error); 
    } 
}]; 

似乎一切都工作正常,我居然得到了call received打印出與此代碼:

- (void)handleCall 
{ 
    self.callCenter.callEventHandler = ^(CTCall *call){ 

    if ([call.callState isEqualToString: CTCallStateConnected]) 
    { 
     //NSLog(@"call stopped"); 
    } 
    else if ([call.callState isEqualToString: CTCallStateDialing]) 
    { 
    } 
    else if ([call.callState isEqualToString: CTCallStateDisconnected]) 
    { 
     NSLog(@"Call ended"); 
    } 
    else if ([call.callState isEqualToString: CTCallStateIncoming]) 
    { 
     NSLog(@"Call received"); 
    } 
    }; 
} 

但沒有顯示來電界面。有什麼我失蹤?

感謝

+2

難道CallKit在SIM卡中不起作用嗎? – Ismailp

+0

你可以幫我到哪裏獲得CallKit整合到VoIP應用Objective-c,即時搜索從幾天,但找不到。但是,如果你有,你能分享鏈接嗎?謝謝! –

+1

CallKit在iOS模擬器中不起作用,以防您正在測試的地方。請嘗試在設備上運行。 –

回答

7

CallKit不會在iPhone模擬器工作,所以您的應用程序將需要在設備上,而不是運行。此外,我建議將您的應用與Apple發佈的示例代碼應用Speakerbox進行比較,以查看您的實施是否存在任何遺漏。

+0

謝謝斯圖爾特!這就像一個魅力:) – Ismailp

+0

@Stuart M,你有代碼在objective-c的callkit示例? –

+0

@AnilkumariOSdeveloper不幸的是,Swift [Speakerbox](https://developer.apple.com/library/content/samplecode/Speakerbox/Introduction/Intro.html)示例應用程序中演示的所有功能都可以從Objective C獲得,只需需要翻譯 –