Ada*_* KC 6 xcode openurl swift callkit
我想开发一个 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)
}
}
Run Code Online (Sandbox Code Playgroud)
如果没有用户操作,任何 iOS 应用程序都无法进行本机调用。
将显示带有电话号码的警报,并且从操作系统级别显示两个按钮“呼叫”和“取消”。
就像我们显示从照片应用程序中删除照片的弹出窗口一样。
如果您想实施 SOS 应用程序(是的,可以使用 VoIP 服务),但您可以在应用程序处于活动状态时拨打电话(只要有互联网连接,无需用户操作即可完成。)
注意:接收方也应支持VoIP。
我们需要IP 语音服务的许可才能在 iPhone 设备之间拨打电话。
VoIP 应用程序必须在 Xcode 项目 > 功能窗格中启用后台模式。选中 IP 语音复选框
此外,CallKit 仅针对 VoIP 应用程序进行缩进,如果您确实想实现 VoIP,请按照CallKit 教程进行操作
| 归档时间: |
|
| 查看次数: |
1356 次 |
| 最近记录: |