即使应用程序在 swift 4 中处于活动状态,在接受 twilio 语音呼叫时调用屏幕也会关闭

Calling screen dismiss on accept the twilio voice call even app is active in swift 4

我在其中一个项目中使用了 Twilio 的可编程语音。我的主要要求是在移动设备之间放置 VoIP class。我能够从一台设备拨打电话到另一台设备,但是当我当时接听电话时,呼叫屏幕会自动关闭并在后台继续通话。在这种情况下,用户无法选择断开通话或任何其他与通话相关的操作,因为屏幕已关闭。

这是我在应用程序处于前台时为调用创建的屏幕。

呼叫完全成功,但在接收者接受时,它将取消自定义 screen.So,即用户没有任何选项可以断开呼叫或与呼叫相关的任何其他操作。

如果代码有任何问题或与我需要配置的呼叫套件设置相关的任何事情或任何其他问题?请帮忙

据我所知,这是调用工具包框架的默认行为。当应用程序处于前台时,单击接受按钮将关闭屏幕。如果您想实现与 whats app 相同的效果,那么您需要为 that.Below 我为解决此问题所做的代码创建自定义屏幕:

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

    NSLog("provider:performAnswerCallAction:")
    // TwilioVoice.configureAudioSession()

    let vc = loadVC(strStoryboardId: SB_CHAT, strVCId: idVoiceCallVC) as! VoiceCallVC
    vc.callername = name
    vc.userPhoto = userphoto
    APP_DELEGATE.appNavigation?.pushViewController(vc, animated: true)
    assert(action.callUUID == self.callInvite?.uuid)
    TwilioVoice.isAudioEnabled = false
    self.performAnswerVoiceCall(uuid: action.callUUID)
    { (success) in
        if (success)
        {
            action.fulfill()

        }
        else
        {
            action.fail()
        }
    }
    action.fulfill()
}

您只需要在这个call kit框架的delegate方法中添加您自定义的屏幕显示代码即可。

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

谢谢。