Ios VOIP应用程序窗口(前台)在活动蜂窝电话呼叫期间被阻止接收用户输入

Ios VOIP应用程序窗口(前台)在活动蜂窝电话呼叫期间被阻止接收用户输入,ios,cocoa-touch,voip,banner,background-foreground,Ios,Cocoa Touch,Voip,Banner,Background Foreground,在主动VOIP呼叫过程中,当收到并接听传入的手机呼叫时,我的应用程序将被置于后台。如果在手机通话中,我将我的应用程序带回前台,则会出现应用程序视图,但没有响应。“触摸返回呼叫”横幅以绿色显示在视图顶部,但应用程序视图的顶部似乎覆盖了一个较暗的透明窗口,阻止视图接收输入。如果我将我的应用放在后台,将另一个应用放在前台,然后将我的应用放回前台,一切正常,因此问题似乎只针对活动手机呼叫和/或绿色横幅?在Settings->Notifications->Phone中,我尝试关闭Notification

在主动VOIP呼叫过程中,当收到并接听传入的手机呼叫时,我的应用程序将被置于后台。如果在手机通话中,我将我的应用程序带回前台,则会出现应用程序视图,但没有响应。“触摸返回呼叫”横幅以绿色显示在视图顶部,但应用程序视图的顶部似乎覆盖了一个较暗的透明窗口,阻止视图接收输入。如果我将我的应用放在后台,将另一个应用放在前台,然后将我的应用放回前台,一切正常,因此问题似乎只针对活动手机呼叫和/或绿色横幅?在Settings->Notifications->Phone中,我尝试关闭Notification Center和Alert Style NONE,希望删除横幅以查看问题是否仍然存在,但这些设置不会影响该横幅。除了应用程序窗口似乎有一个透明窗口覆盖在其上之外,如果我触摸窗口,我能够在所有方向(上下左右)拖动整个应用程序窗口(或视图),当我释放它时,它具有反弹效果(如tableview垂直滚动)

如果我不知道这个问题,我就无法解决它


谢谢。

您确定没有视图添加到您的视图顶部,而该视图可能会拦截您的所有事件吗?我的第二个猜测是,您的应用程序收到内存警告并卸载了一堆视图。但是,这不太可能,因为您仍然可以看到所有视图。

我不知道您真正的意思是什么“让你的应用回到前台”,但我可以肯定地告诉你,你不能在同一个线程中调用UI和传入呼叫,因此,在这种情况下,当你想在通话中呈现一些视图时,你可以尝试以下方法:

public void InvokeGUIThread(Action action)
{
  Dispatcher.Invoke(action);
}
InvokeGUIThread(() =>
        {
            textBlockSome.Text = e.Item.ToString();
        });
例如,如果要在文本块中设置文本,请执行以下操作:

public void InvokeGUIThread(Action action)
{
  Dispatcher.Invoke(action);
}
InvokeGUIThread(() =>
        {
            textBlockSome.Text = e.Item.ToString();
        });

我相信这个问题与iOS在顶部显示的横幅“触摸返回通话”有关“。它的显示似乎阻止了我的应用程序视图接收输入。嗨,Daniel,当我的应用程序正在使用时,我收到一个传入的手机呼叫,因此本机电话客户端会出现在前台。我接听电话,然后双击“主页”按钮以显示正在运行的应用程序,我选择了我的应用程序,使其成为活动应用程序(本机电话客户端被置于后台),但我的应用程序似乎覆盖了此传输窗口,并且我的应用程序不接收手势事件。仅当本机电话客户端有活动呼叫时,如果我对另一个应用程序重复上述步骤,则问题不存在……谢谢。。。