Доступ к сети фонового приложения iOS

У меня есть приложение, которое требует отслеживания местоположения, и я думаю, что оно точно соответствует одной из допустимых фоновых моделей. Однако мне нужно отправить сообщение в сетевой сервис, когда есть существенные изменения местоположения. Я видел сообщения о том, что доступ к сети запрещен при фоновой обработке, но я не читал об этом в документации Apple.

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


person michael    schedule 08.03.2012    source источник


Ответы (3)


Хороший момент, согласно документации Apple, в фоновом режиме разрешены только следующие виды использования, и каждая служба должна быть зарегистрирована:

  • audio: приложение воспроизводит звуковой контент для пользователя в фоновом режиме. (Этот контент включает потоковое аудио или видео с помощью AirPlay.)
  • местоположение - приложение информирует пользователей об их местоположении, даже когда оно работает в фоновом режиме.
  • voip. Приложение позволяет пользователю совершать телефонные звонки через Интернет.
  • газетный киоск. Приложение представляет собой приложение для газетного киоска, которое загружает и обрабатывает содержимое журналов или газет в фоновом режиме.
  • external-accessory - приложение работает с аппаратным аксессуаром, который должен доставлять обновления по регулярному графику через структуру внешних аксессуаров.
  • bluetooth-central - приложение работает с аксессуаром Bluetooth, которому необходимо регулярно доставлять обновления через платформу CoreBluetooth.

Помимо этих служб, вы можете создать задачу конечной длины в фоновом режиме, которая фактически дает вам возможность завершить сетевой процесс.

Это может быть важно, если ваше приложение выполняет какую-либо важную задачу, например, записывает пользовательские данные на диск или загружает важный файл с сетевого сервера.

Что касается вашего вопроса, не совсем ясно, можете ли вы выполнить быстрое сетевое соединение или нет, если у вас работает служба определения местоположения в фоновом режиме. Я бы сказал ДА для короткого соединения, но не совсем уверен. Начиная с iOS 4.0 это использование было запрещено и ясно в документации, теперь эта часть удалена.

person bontoJR    schedule 08.03.2012

Да, если вы используете фон только для быстрого подключения. Apple не позволит вам работать в фоновом режиме, как вы хотите.

НЕТ. Если ваше приложение не попадает в категорию Voip, Music или GPS; тогда вы не можете работать в фоновом режиме.

подробнее здесь: ​​Обновить мое приложение, когда оно находится в фоновом режиме


Вы можете использовать ASIHTTPRequest.

ASIHTTPRequest имеет свойство setShouldContinueWhenAppEntersBackground:. по умолчанию NO, вы можете включить YES, чтобы у вас был фоновый сетевой процесс.

person HelmiB    schedule 08.03.2012
comment
Спасибо. Чтобы уточнить, вопрос в том, действительно ли Apple разрешает доступ к сети при работе в фоновом режиме. - person michael; 08.03.2012
comment
Еще раз спасибо, но ссылка на самом деле не отвечает на мой вопрос - это больше о завершении существующего сетевого запроса. Я хочу работать в фоновом режиме бесконечно и время от времени выполнять сетевой запрос (скажем, отправлять 1000 байт каждый час). Это вопрос политики Apple в отношении доступа к сети в фоновых приложениях. - person michael; 08.03.2012
comment
ну тогда ответ будет НЕТ. Apple не позволит вам этого сделать (если возможно). - person HelmiB; 09.03.2012
comment
Можете ли вы указать мне на что-нибудь, написанное Apple или кем-то, у кого было отклонено приложение из-за этого? Это очень важно для меня, поэтому мне нужно точно знать, да или нет. - person michael; 09.03.2012
comment
это возможно сделать. попробуйте поискать другую реализацию вроде ASIHTTPRequest. - person HelmiB; 08.11.2012

Документация Apple кажется немного неясной в отношении строгой политики. В магазине приложений определенно есть приложения, которые совершают спорадические сетевые вызовы при работе в фоновом режиме в качестве приложения на основе местоположения. Примером может служить приложение Geoloqi.

person x89a10    schedule 24.10.2012