7

我已经阅读了有关进行非 voip-call 的问题,并且似乎打开的 url 是唯一的方法。由于 CoreTelephony 已被弃用,是否可以在使用开放 url 拨打电话时使用 Callkit 获取通话状态?如果没有,有没有办法以编程方式获取呼叫状态?我正在开发一个内部应用程序。

如何使用 CallKit 拨打非 voip 电话?

提前致谢!!

4

1 回答 1

13

要在 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")
        }
    }
}
于 2017-08-02T19:22:48.293 回答