Подтвердить что ты не робот

Исходное изображение iOS не работает

Сейчас я пишу приложение VoIP для iOS, но когда приложение находится в фоновом режиме, оно перестает принимать вызовы. Когда приложение снова активируется, все сообщения в очереди начинают обрабатываться.

Следующее - это то, что я сделал.

При создании приложения я добавляю Voice to IP, а также Audio и AirPlay в файл plist. Затем я отмечаю соединение с websocket с NetworkServiceTypeVoIP, как вы можете видеть здесь.

Я не установил обработчик тайм-аута keep keep keep, потому что регистрация не имеет значения, если приложение не проснется, чтобы ответить на вызов. Любая помощь будет принята с благодарностью.

Следует отметить, что это мой первый проект Swift, и я не очень хорошо знаком с платформой iOS.

4b9b3361

Ответ 1

Чтобы разрешить работу вашего приложения в фоновом режиме, вам нужно включить флаг Voice over IP ON (Путь: Перейти к цели → возможности → Режимы фона). как показано ниже.

enter image description here

И добавьте следующий код в свой проект для поддержки в фоновом режиме:

Шаг 1: Объявить __block UIBackgroundTaskIdentifier bgTask как глобальную переменную.

Шаг 2: Чтобы добавить следующий код в applicationDidEnterBackground.

  - (void)applicationDidEnterBackground:(UIApplication *)application {

         bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
         bgTask = UIBackgroundTaskInvalid;
          }];

}

Шаг 3: Остановите обработчик фоновых задач, когда приложения заходят в режим переднего плана.

- (void)applicationWillEnterForeground:(UIApplication *)application {
  // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.

  [[UIApplication sharedApplication] endBackgroundTask:bgTask];

}

Ответ 2

Взгляните на Apple documentation, вас, вероятно, интересует UIBackgroundModes=voip.

UPD:

Из документации:

Чтобы настроить приложение VoIP, вы должны сделать следующее:

  • Включить поддержку Voice over IP в разделе "Режимы фона" вкладку "Возможности" в вашем проекте Xcode. (Вы также можете включить это поддержки, включив ключ UIBackgroundModes с значением voip в файл приложений Info.plist.)
  • Настройте один из сокетов приложений для Использование VoIP.
  • Перед тем, как перейти на задний план, вызовите setKeepAliveTimeout:handler: метод установки обработчика выполняются периодически. Ваше приложение может использовать этот обработчик для сервисное соединение.
  • Настройка сеанса аудио для обработки переходов от активного использования.

Ответ 3

Вы можете найти свой ответ или какой-нибудь ключ → здесь < -

Собственно, нужно исследовать следующее:

applicationDidEnterBackground
beginBackgroundTaskWithExpirationHandler