从锁定屏幕应答呼叫后显示自定义UI

问题描述 投票:1回答:1

我开发了一个叫Whatapp和skype的调用应用程序。我的问题是,当我的手机被锁定而另一个用户正在通过锁定屏幕给我打电话时,我会收到通知,如果我刷通知,则自动收到通话。(当然使用callkit)

我只是想知道是否有可能看到callkitUI屏幕与我的手机解锁时另一个用户给我打电话一样?

如果有人知道细节,解决方案或任何有关它的信息,那将非常有用。

我已经检查了下面的文件。

Apple CallKit

ENHANCE YOUR VOIP APP USER EXPERIENCE USING PUSHKIT + CALLKIT

CallKit Tutorial for iOS

这是我的代码。

func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) {

    action.fulfill()

    print("=================CXAnswerCallAction============")

    self.window = UIWindow(frame: UIScreen.main.bounds)
    let storyboard = UIStoryboard(name: "VoipAcceptUser", bundle: nil)    
    let initialViewController = storyboard.instantiateViewController(withIdentifier: "VoipAcceptUser")     
    self.window?.rootViewController = initialViewController
    self.window?.makeKeyAndVisible()

}
ios swift callkit cxprovider
1个回答
1
投票

当应用程序在前台运行时,系统不会向您的应用程序提供其调用屏幕。您必须自己提供呼叫屏幕。

通过使用CallKit框架,完全取决于系统确定是否显示来电屏幕。仅在我知道的3个实例中,系统为您的应用程序提供了一个呼叫屏幕。

系统为VoIP呼叫提供呼叫屏幕时的已知实例:

  1. 当手机从VoIP推送通知服务接收VoIP呼叫时。通过使用CallKit框架,您需要将新的传入呼叫屏幕报告给CXProviderDelegate对象。
  2. 当电话具有活动的常规(蜂窝)呼叫并接收VoIP呼叫时。如果您在CXProviderConfiguration中设置了您的VoIP应用程序允许处理多个呼叫,则此方法有效。如果您允许呼叫分组和呼叫保持,系统将为用户提供UI以处理常规和VoIP呼叫之间的切换
  3. 当手机有一个正常的常规呼叫,并且用户从后台启动拨出的VoIP呼叫时,系统调用屏幕将保持打开以向用户提供UI以处理多个呼叫操作(如果您已允许处理多个呼叫,则为APP)

总结是,您需要自己为VoIP应用程序提供UI,至少是传出和活动的调用屏幕,并相应地使用调用状态更新UI。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.