首页 > 解决方案 > 斯威夫特/CallKit。是否可以通过自定义 UI 通知 CallKit 接受来电?

问题描述

我需要通过点击自定义 UI 按钮来接听电话。从原生推送调用屏幕系统通过CXProviderDelegate方法通知

func provider(_ provider: CXProvider, perform action: CXAnswerCallAction)

截屏 但是如何使用自定义 UI 通知 CallKit?

例如,我可以通过方法通知 CallKit 已结束的呼叫

reportCall(with UUID: UUID, endedAt dateEnded: Date?, reason endedReason: CXCallEndedReason)

标签: iosswiftcallkit

解决方案


如果您仍然需要知道如何从自定义 UI 手动通知操作,您可以在下面找到解决方案。

无论如何,让它放在这里以供将来参考。

let answerAction: CXAnswerCallAction = CXAnswerCallAction(call: incomingCallUUID)
let transaction: CXTransaction = CXTransaction(action: answerAction)
            
callController.request(transaction) { error in
    if let error = error {
        NSLog("Error!!!")
    } else {
        NSLog("Success")
    }
}

注意:callController 类型是CXCallController,incomingCallUUID 是你的 CXProvider 上报的来电 UUIDreportNewIncomingCall(with:)


推荐阅读