ios - 即使应用程序在 swift 4 中处于事件状态,调用屏幕也会在接受 twilio 语音调用时关闭

标签 ios swift twilio call voice

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

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

Caller screen

调用完全成功,但在接收者接受时,它将关闭自定义屏幕。因此,用户没有任何选项来断开调用或与调用相关的任何其他操作。

如果代码中有任何问题或与我需要配置的调用套件设置相关的任何问题或任何其他问题?请帮忙。

最佳答案

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

 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) {}

谢谢。

关于ios - 即使应用程序在 swift 4 中处于事件状态,调用屏幕也会在接受 twilio 语音调用时关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52714535/

相关文章:

php - 使用 Twilio PHP MediaUrl 接收彩信

iphone - 从 AppDelegate 访问类的运行实例

ios - 解析推送数据到详细 View 等于 null

ios - 如何使用 Swift 获取 Xcode 根文件夹目录路径

ios - 按年份比较 Swift 日期

twilio - 如何在 Twilio 中关闭选择退出功能

ios - 不能形成 Range with end < start

ios - 从 View 框架内编辑 UILabel

ios - 如何处理 Swift 中缺少反射的问题?

automation - Twilio 可以用来接听电话和按键吗?