Как получить асинхронное сетевое сообщение, пока приложение iphone работает в фоновом режиме - PullRequest
0 голосов
/ 04 января 2011

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

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

Как заставить приложение получать сетевое сообщение, даже если оно работает в фоновом режиме?

Спасибо.

Ответы [ 3 ]

1 голос
/ 04 января 2011

У вас есть два варианта сетевого подключения в фоновом режиме:

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

  • Фоновые сетевые вызовы.Ваше приложение может запросить поддержку потока в фоновом режиме, чтобы завершить сетевую активность.Вы можете использовать это для отправки запроса, когда ваше приложение закрывается для регистрации на вашем сервере.

0 голосов
/ 04 января 2011

Сначала проверьте этот пост: iphone - Подключение к серверу в фоновом режиме

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

В-третьих, возможная стратегия:

  • Когда ваше приложение переключается в фоновый режим, немедленно отправьте запрос на ваш сервер, чтобы на вашем сервере была обновленная запись о последнем статусе вашего приложения
  • Когда ваше приложение должно переключиться обратно на передний план, снова сообщите об этом вашему серверу, отправив запрос
  • Может случиться, что ваше приложение все еще находится в фоновом режиме, в то время как вашему серверу просто нужно получить к нему доступ или отправить ему какое-либо сообщение. В этом случае попробуйте APN (Apple Push Notification Service), предоставляемый Apple. Это бесплатно и легко реализовать. Возможный результат, как только вы настроите APN для своего приложения, пользователь получит push-сообщение от вашего сервера, а затем решит вернуть свое приложение на передний план. Хотя это все еще полностью зависит от пользователя, шансы хорошие.
0 голосов
/ 04 января 2011

Я не разработчик iphone, но для меня, для всех фоновых приложений все сетевые сообщения должны быть отправлены на сервер Apple, а затем - на телефон. Там нет сервиса, как в Android.

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