我正在将 callkit 用于 voip 应用程序,在每次全新安装时,CallKit startCallAction 请求都会失败并抛出“com.apple.CallKit.error.requesttransaction error 7”。
请在下面找到负责的方法。
func performStartCallAction(handle: String) {
let uuid = UUID()
let callHandle = CXHandle(type: .phoneNumber, value: handle)
let startCallAction = CXStartCallAction(call: uuid, handle: callHandle)
let startCallTransaction = CXTransaction(action: startCallAction)
callKitController.request(startCallTransaction) { error in
if let error = error {
print("StartCallAction transaction request failed: \(error.localizedDescription)")
return
}
let callUpdate = CXCallUpdate()
callUpdate.remoteHandle = callHandle
callUpdate.supportsDTMF = true
callUpdate.supportsHolding = true
callUpdate.supportsGrouping = false
callUpdate.supportsUngrouping = false
callUpdate.hasVideo = false
self.callKitProvider.reportCall(with: uuid, updated: callUpdate)
}
}
在后续运行中,相同的代码可以正常工作。
我不确定我做错了什么,请帮助。短暂性脑缺血发作。
在尝试使用 CallKit 在 iOS 中启动呼叫事务时,我在全新安装时遇到了与
com.apple.CallKit.error.requesttransaction error 7
相同的问题。这个问题的根本原因与CXProvider初始化的时机有关。
要解决此问题 - 在应用程序生命周期一开始就初始化 CXProvider 。
奖励:请记住,CXProvider 必须是您应用程序中的单例 🙇u200d♂️