如何将CXCallController带到前面

时间:2019-01-25 15:45:28

标签: ios swift

我正在创建VOIP应用程序。大多数逻辑类似于VoIP应用程序的CallKit iOS Swift教程(超级简单)教程。 https://websitebeaver.com/callkit-swift-tutorial-super-easy

我的问题是,运行viewDidLoad()之后,CXCallController不在应用程序的顶部,而是在“任务管理器”中位于其旁边:

我正在关注的文档说:“如果按下电话上的锁定按钮,您将看到呼出电话正在尝试建立连接。”

在用户接受呼叫后,如何将CXCallController带到最前面?

import UIKit
import CallKit

class ViewController: UIViewController, CXProviderDelegate {

override func viewDidLoad() {
    let provider = CXProvider(configuration: CXProviderConfiguration(localizedName: "My App"))
    provider.setDelegate(self, queue: nil)
    let controller = CXCallController()
    let transaction = CXTransaction(action: CXStartCallAction(call: UUID(), handle: CXHandle(type: .generic, value: "Pete Za")))
    controller.request(transaction, completion: { error in })
}

    func providerDidReset(_ provider: CXProvider) {
    }

 }

1 个答案:

答案 0 :(得分:1)

您不能将系统调用屏幕显示在已接受呼叫的前面。您必须自己提供UI。如果电话已锁定并且收到VoIP呼叫,则会显示系统呼叫屏幕;或者,如果您有1个VoIP和1个常规呼叫,并且在两者之间进行切换,则会显示系统呼叫屏幕。