我目前正在开发具有VoIP功能的iOS应用程序。我使用CallKit接听电话。当设备被锁定并且用户接受呼叫时,系统UI会出现,用户可以点击我的应用程序图标进一步移动到我的应用。这是一种预期的行为,效果很好。
然而,我注意到,当你与Viber进行视频通话时,行为略有不同。当您接受呼叫时,系统UI会短暂出现,然后Viber应用程序会自动出现。Telegram的情况并非如此,您仍然需要点击Telegram图标才能进一步移动。所以Viber的行为是意料之中的。看起来Viber的人不知怎么绕过了系统UI,直接跳转到了他们的应用程序。
有人知道他们是怎么做的吗?
显然,如果在报告调用时将CXCallUpdate
的hasVideo
属性设置为true
,则在接受调用时,系统将自动打开您的应用程序。无论如何,文档中没有提到这个功能。或者,至少,我找不到任何关于它的信息
这是我的代码中现在报告新呼叫的部分:
let update = CXCallUpdate()
update.remoteHandle = CXHandle(type: .generic, value: handle)
update.hasVideo = true // <- was false earlier, setting to true did the trick
update.supportsDTMF = false
update.supportsHolding = true
update.supportsGrouping = false
update.supportsUngrouping = false
callProvider.reportNewIncomingCall(with: uuid, update: update, completion { error in
/*...*/
}