呼叫套件 :- 呼叫套件正在工作,但被叫方未接到呼叫



我想开发一个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 进行标准的本机调用。如文档中明确说明的那样,CallKit框架旨在用于开发自定义VoIP应用程序并将其与本机电话界面集成。

如果没有用户操作,任何 iOS 应用程序都无法进行本机调用。

将显示一个带有电话号码的警报,并且两个按钮将可用"呼叫"和"取消",这是从操作系统级别显示的。

就像我们显示弹出窗口以从照片应用程序中删除照片一样。

溶液

如果您想实施SOS应用程序(是的,可以使用VoIP 服务(,但您可以在应用程序处于活动状态时拨打电话(可以完成 没有用户操作,给定互联网连接在那里。

注意:接收方还应支持 VoIP。

如何实施VoIP

我们需要 IP 语音服务的许可才能在 iPhone 设备之间拨打电话。

VoIP 应用必须在"Xcode 项目>功能"面板中启用后台模式。选中"IP 语音"复选框

此外,CallKit仅针对VoIP应用程序缩进,如果您真的想实现VoIP,请遵循CallKit教程

最新更新