不推荐使用CTCallCenter.有什么选择? [英] CTCallCenter is deprecated. What is the alternative?

查看:705
本文介绍了不推荐使用CTCallCenter.有什么选择?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的项目中使用 CTCallCenter .现在已弃用,我想知道什么是替代品?如何获得语音通话事件?

I am using CTCallCenter in my project. Now it's deprecated, I would like to know what are alternatives? How to get the event for the voice call?

推荐答案

此文档记录很少,但是我在CTCallCenter公共头文件中找到了此提及:

This is poorly documented, but I've found this mention in CTCallCenter public header files:

<CallKit/CXCallObserver.h>取代"

因此,从iOS 10开始,您应该使用新类的 CXCallObserver 类href ="https://developer.apple.com/reference/callkit" rel ="noreferrer"> CallKit 框架以检索有关活动呼叫的信息:

So, from iOS 10 you should use CXCallObserver class of new CallKit framework to retrieve info about active calls:

CXCallObserver *callObserver = [[CXCallObserver alloc] init];

提供对象,该对象符合 CXCallObserverDelegate 协议和队列,您要在其上执行委托回调:

Provide object, conforming to CXCallObserverDelegate protocol and queue, on which you want to perform delegate callbacks:

// 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;

并在您的委托对象上实现以下方法:

and implement the following method on your delegate object:

- (void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call {
    if (call.hasConnected) {
        // perform necessary actions
    }
}

有关更多信息,您可以检查:

For more information, you can check:

  • Enhancing VoIP Apps with CallKit session from WWDC 2016
  • Speakerbox sample project

这篇关于不推荐使用CTCallCenter.有什么选择?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆