swift2 使用CallKit拨打电话

zrfyljdw  于 2022-11-06  发布在  Swift
关注(0)|答案(3)|浏览(235)

我实际上是在swift 2.3上。呼入电话和CallKit配合得很好。但是呼出电话...
我看过SpeakerBox项目,我做了同样的事情。但是它不起作用。
开始我的电话,我用

let handle = CXHandle(type: .PhoneNumber, value: "TOTO")
let startCallAction = CXStartCallAction(callUUID: uuid, handle: handle)
startCallAction.video = video
let transaction = CXTransaction()
transaction.addAction(startCallAction)
requestTransaction(transaction)

之后,在SpeakerBox项目中调用此函数:

func provider(provider: CXProvider, perform action: CXStartCallAction)

但不是在我的项目中。然后,当我挂断电话时,我看到:“呼叫失败”。
你有主意吗?

yc0p9oo0

yc0p9oo01#

请确保正确配置CXProvider并设置其委托。如果未设置CXProvider的delegate属性,则委托将不会接收到任何要执行的操作。
另外,如果你看到一个“调用失败”的UI,这可能表明你的应用程序崩溃了。我会检查崩溃日志或在调试器中运行应用程序。

t3psigkw

t3psigkw2#

就我所见,SpeakerBox演示不执行以下提供程序方法:
https://developer.apple.com/documentation/callkit/cxprovider/1930701-reportcall
第一个
这将导致显示“Call failed”(呼叫失败)UI屏幕-因为CallKit未给出呼叫结束的原因,并且似乎默认情况下假定为“CXCallEndedReasonFailed”(CXCallEndedReasonFailed)。
在请求CXEndCallAction事务之前调用“reportCall endedAt”以删除“调用失败”屏幕。

oug3syen

oug3syen3#

您是否已将所需的权限添加到您的info.plist?

相关问题