2016-09-21 107 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获得,只需需要翻译 –