CTCallCenter 已弃用。有什么选择?
CTCallCenter is deprecated. What is the alternative?
我在我的项目中使用 CTCallCenter
。现在它已被弃用,我想知道有什么替代方案?如何获取语音通话的事件?
这没有很好的记录,但我在 CTCallCenter
public 头文件中发现了这一点:
"Replaced by <CallKit/CXCallObserver.h>
"
因此,从 iOS 10 开始,您应该使用 CXCallObserver
class of new CallKit
框架来检索有关活动呼叫的信息:
CXCallObserver *callObserver = [[CXCallObserver alloc] init];
提供object,符合CXCallObserverDelegate
协议和队列,你想在其上执行委托回调:
// If queue is nil, then callbacks will be performed on main queue
[callObserver setDelegate:self queue:nil];
// Don't forget to store reference to callObserver, to prevent it from being released
self.callObserver = callObserver;
并在您的委托上实现以下方法 object:
- (void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call {
if (call.hasConnected) {
// perform necessary actions
}
}
更多信息,您可以查看:
- Enhancing VoIP Apps with CallKit session 来自 WWDC 2016
- Speakerbox 示例项目
我在我的项目中使用 CTCallCenter
。现在它已被弃用,我想知道有什么替代方案?如何获取语音通话的事件?
这没有很好的记录,但我在 CTCallCenter
public 头文件中发现了这一点:
"Replaced by
<CallKit/CXCallObserver.h>
"
因此,从 iOS 10 开始,您应该使用 CXCallObserver
class of new CallKit
框架来检索有关活动呼叫的信息:
CXCallObserver *callObserver = [[CXCallObserver alloc] init];
提供object,符合CXCallObserverDelegate
协议和队列,你想在其上执行委托回调:
// If queue is nil, then callbacks will be performed on main queue
[callObserver setDelegate:self queue:nil];
// Don't forget to store reference to callObserver, to prevent it from being released
self.callObserver = callObserver;
并在您的委托上实现以下方法 object:
- (void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call {
if (call.hasConnected) {
// perform necessary actions
}
}
更多信息,您可以查看:
- Enhancing VoIP Apps with CallKit session 来自 WWDC 2016
- Speakerbox 示例项目