繁体   English   中英

从锁定屏幕接听电话后显示自定义 UI

[英]Show custom UI after answer call from lock screen

我开发了一个呼叫应用程序,例如 Whatapp 和 Skype。 我的问题是,当我的手机被锁定并且另一个用户在锁定屏幕上给我打电话时,我会收到一条通知,如果我滑动通知,则会自动收到电话。(当然使用 callkit)

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

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

我已经检查了以下文件。

苹果通话套件

使用 PUSHKIT + CALLKIT 提升您的 VOIP 应用程序用户体验

iOS 版 CallKit 教程

这是我的代码。

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()

}

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

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

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

  1. 当电话收到来自 VoIP 推送通知服务的 VoIP 呼叫时。 通过使用 CallKit 框架,您需要将新的来电屏幕报告给CXProviderDelegate对象。

  2. 当电话有活动的常规(蜂窝)呼叫并收到 VoIP 呼叫时。 如果您在 CXProviderConfiguration 中设置了您的 VoIP 应用程序允许处理多个呼叫,则此方法有效。 如果您允许呼叫分组和呼叫保持,系统将为用户提供 UI 来处理常规呼叫和 VoIP 呼叫之间的切换

  3. 当电话有一个活动的常规呼叫,并且用户从后台开始拨出 VoIP 呼叫时,这样,系统呼叫屏幕将保持打开状态以向用户提供 UI 以处理多个呼叫操作(如果您允许在您的系统中处理多个呼叫,则为应用程序)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM