我想开发一个SOS应用程序。当我尝试使用URL模式openURL()时,它将显示警报,但我的要求是在尝试呼叫时连接呼叫而没有任何警报或弹出窗口。因此我找到了使用CallKit的解决方案。当我在应用程序中实现CallKit时,它不要求任何权限,发出了拨出电话,但被叫方没有收到任何电话。有什么解决办法吗?
我已经尝试使用以下代码来连接呼叫。
@IBAction func buttonCallTapped(_ sender: Any) {
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: .phoneNumber, value: "\(number)")))
controller.request(transaction, completion: { error in })
DispatchQueue.main.asyncAfter(wallDeadline: DispatchWallTime.now() + 5) {
provider.reportOutgoingCall(with: controller.callObserver.calls[0].uuid, connectedAt: nil)
}
}
您只是无法通过CallKit进行标准的本地调用。 documentation中明确指出,CallKit框架旨在用于开发自定义VoIP应用程序并将其与本机电话接口集成。