我正在我的应用中开发视频通话功能,并使用 CallKit 作为来电界面。我发现了一个边缘情况,如:
- 用户A:呼叫用户B
- 用户 B:
- 应用处于终止状态。并为用户 B 显示 CallKit 传入 UI。
- 用户 B 没有注意到(因为静音模式)并让传入的 UI 继续显示
- 用户 A 没有结束通话;或者由于某些原因,用户 A 失去了互联网或退出了应用程序(因此我的服务器不会通过 VoIP 通知发送取消命令),因此用户 B 无法结束传入的 UI,直到用户 B 触摸取消或应答
那么有没有办法为 CallKit 的传入 UI 设置超时?例如:如果我将超时设置为 60 秒,那么传入的 UI 只会在 60 秒后显示自动关闭。
这是我显示传入 UI 的代码:
let update = CXCallUpdate()
update.localizedCallerName = callerName
update.remoteHandle = CXHandle(type: .phoneNumber,value: myID)
update.hasVideo = true
self.provider.reportNewIncomingCall(with: uuid,update: update) { [weak self] error in
guard let self = self else { return }
if error == nil {
// Store my calls
let call = Call(uuid: uuid,handle: handle)
self.callKitManager.add(call: call)
}
}
任何帮助将不胜感激。谢谢。