我已经完成了通话工具+ twilio IOS应用。问题是(据我所知)是ios12。
当我在具有IOS 11的设备上运行该应用程序时,通话会正常启动。当我在具有IOS 12的设备上运行该应用程序时,当我尝试进行首次呼叫时,出现此错误:
StartCallAction transaction request failed: The operation couldn’t be
completed. (com.apple.CallKit.error.requesttransaction error 7.)
此错误表示这件事:请求的事务包含的操作(如果执行)将超过提供程序的最大呼叫组数。但是我将callGroupMax编号设置为1(我尝试将其设置为2,3,但仍然相同)
我在Google上发现只有一个线程出现此错误,但是没有提供解决方案。求助提示我是什么原因导致此错误,因为我一直坚持下去。
此错误仅在全新安装后进行首次调用时出现。然后,我可以按预期拨打电话。
这是callkitManager类:
class CallKitManager: NSObject {
class var shared: CallKitManager {
struct Static {
static let instance: CallKitManager = CallKitManager()
}
return Static.instance
}
fileprivate let callKitProvider: CXProvider
override init() {
callKitProvider = CXProvider(configuration: type(of: self).providerConfiguration)
super.init()
callKitProvider.setDelegate(self, queue: nil)
}
static var providerConfiguration: CXProviderConfiguration {
let localizedName = NSLocalizedString("NAME", comment: "Name of application")
let configuration = CXProviderConfiguration(localizedName: localizedName)
configuration.supportsVideo = false
configuration.maximumCallsPerCallGroup = 1
configuration.ringtoneSound = "myringtone"
configuration.supportedHandleTypes = [.generic]
if let callKitIcon = UIImage(named: "callKitIcon") {
configuration.iconTemplateImageData = callKitIcon.pngData()
}
return configuration
}
我希望该调用是第一次连接,但是结果是在performStartCallAction()
方法中,我从上面得到了错误。
答案 0 :(得分:0)
所以两天后我就知道了。问题是我将callKit用作单例,这是错误的。您需要使用AppDelegate“模仿”单身人士。请参阅本教程https://www.raywenderlich.com/701-callkit-tutorial-for-ios,并查看AppDelegate并了解其实现方式。