Флаттер: держать сокет io открытым, когда приложение в фоновом режиме (IOS) - PullRequest
0 голосов
/ 03 апреля 2020

Я создаю приложение, которое использует flutter_pllayout и adhara_socket_io

Сценарий приложения

Когда приложение запускается, он подключается к сокету и продолжает получать аудио URL-адреса в случайное время, затем воспроизводит этот URL-адрес, он отлично работает на android

Проблема

, но в iOS когда пользователь переключается на домашнее или любое другое приложение (когда мое приложение находится в фоновом режиме), кажется, что оно закрывает соединение сокета и продолжает работу, когда приложение становится на передний план, есть ли способ сохранить соединение сокета открытым?

1 Ответ

0 голосов
/ 03 апреля 2020

Фоновые задачи на iOS очень ограничены. Работает только в том случае, если вы постоянно воспроизводите аудио с правильными деталями Info.plist.

Если вы хотите, чтобы клиентская сторона периодически повторялась (задача задания cron), используйте: BGTaskScheduler (для iOS), один Другой вариант - использовать задачу уведомления cron, запускаемую pu sh (для этого вы даже можете использовать функции Firebase).

Официальные документы: BFTaskScheduler , Фоновое поведение iOS, Включение фонового звука

и нет, сокетные соединения не могут постоянно открываться (даже на Android в последних версиях их ОС). Опять же, используйте задачи cron для достижения аналогичного поведения.

Официальные документы: Android Фоновые ограничения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...