XMPP framework - приложение на основе местоположения, подключенное в фоновом режиме - PullRequest
6 голосов
/ 07 февраля 2012

Я разработал и приложение, которое в настоящее время установлено как «Расположение на основе», чтобы оно могло работать в фоновом режиме без ограничений. Это не уловка, мне нужно это делать вещи, когда пользователь движется. После некоторого поиска я узнал, что это приложение будет выполнять код только в случае изменения местоположения, и ни один таймер не сможет выполнить какой-либо код через 10 минут.

Мое приложение в фоновом режиме остается подключенным к XMPP в течение 50 минут или около того, затем оно отключается. Я бы хотел, чтобы приложение никогда не отключалось, я посмотрел на фреймворк, но не могу найти место, где можно исправить это поведение. Вы знаете, возможно ли оставаться на связи "неопределенно"? если да, то какие настройки мне нужно изменить в xmppframework.

спасибо

[EDIT] Через 50 минут пользователь все еще подключен к XMPP, но он отключен от XMPPRooms, с которыми он был подключен. При следующем запуске он был подключен в течение 3 часов, время подключения iPhone не соответствует.

1 Ответ

0 голосов
/ 18 февраля 2012

Чтобы ваше приложение могло отправлять и получать сообщения поддержки активности, оно должно быть приложением voip и использовать гнездо voip.Из Документация Apple :

  1. Добавьте ключ UIBackgroundModes в файл Info.plist вашего приложения.Задайте значение этого ключа для массива, который включает значение voip.
  2. Настройте один из сокетов приложения для использования VoIP.
  3. Прежде чем перейти к фону, вызовите setKeepAliveTimeout: handler: методустановить обработчик, который будет выполняться периодически.Ваше приложение может использовать этот обработчик для поддержания своего сервисного соединения.

Что касается сокета:

NSInputStream и NSOutputStream: для потоков Какао используйте setProperty:forKey: метод для добавления свойства NSStreamNetworkServiceType в поток.Значение этого свойства должно быть установлено в NSStreamNetworkServiceTypeVoIP.

...