ios - 斯威夫特/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)
解决方案
如果您仍然需要知道如何从自定义 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:)