简体   繁体   English

Callkit可以与非voip呼叫一起使用来获取ios中的呼叫状态吗?

[英]Can Callkit be used with non-voip call to get the call states in ios?

I have read the question about making a-non-voip-call and it seems, that the open url is the only way to do it. 我已经阅读了关于进行非voip调用的问题,似乎开放式网址是唯一的方法。 Since CoreTelephony is deprecated, is it possible to use Callkit to get the call states when making a call with open url? 由于不推荐使用CoreTelephony,是否可以在使用open url进行调用时使用Callkit来获取调用状态? If not is there any way to get the call states programmatically? 如果没有,有没有办法以编程方式获得呼叫状态? I am developing an in-house-app. 我正在开发一个内部应用程序。

How can CallKit be used to make a non-voip call? CallKit如何用于拨打非voip电话?

Thanks in advance!! 提前致谢!!

To get call states in CallKit, you can use CXCallObserver in your app. 要在CallKit中获取呼叫状态,您可以在应用中使用CXCallObserver。

import CallKit

final class ProviderDelegate: NSObject, CXCallObserverDelegate { 
var callObserver: CXCallObserver!

func setupCallObserver(){
callObserver = CXCallObserver()
callObserver.setDelegate(self, queue: nil)
}

func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) {
        if call.hasEnded == true {
            print("CXCallState :Disconnected")
        }
        if call.isOutgoing == true && call.hasConnected == false {
            print("CXCallState :Dialing")
        }
        if call.isOutgoing == false && call.hasConnected == false && call.hasEnded == false {
            print("CXCallState :Incoming")
        }

        if call.hasConnected == true && call.hasEnded == false {
            print("CXCallState : Connected")
        }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM