Я создал приложение чата, используя инфраструктуру XMPP .. когда я ушел из приложения (введите фоновый режим) Я хочу получить сообщение чата .., а также нужно отобразить значок значка ... Как можно Я делаю это?iphone XMPP App run background
ответ
Вы действительно можете запустить приложение XMPP Framework на основе в фоновом режиме в iOS4 называя это VoIP приложение. (Однако, Apple отвергает его из App Store, если он также не действительно VoIP).
Вы должны установить флаг VoIP в вашем приложении (APPNAME) -info.plist файл, а затем в
(void)xmppStream:(XMPPStream *)sender socketWillConnect:(AsyncSocket *)socket
Вы должны будете установить гнездо поток флаги включают kCFStreamNetworkServiceTypeVoIP
:
CFReadStreamSetProperty([socket getCFReadStream], kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
CFWriteStreamSetProperty([socket getCFWriteStream], kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
Затем ваше приложение будет разбужено, когда придет новое сообщение XMPP. В вашем обычного обработчике
(void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message
, вы хотите создать локальные уведомления для сообщения, если вы фоновые (вы можете отслеживать фоновое состояние через UIApplicationDidEnterBackgroundNotification
и UIApplicationWillEnterForegroundNotification
). Локальный обработчик уведомлений может установить номер значка приложения и т. Д. (Так же, как и для push-уведомления).
EDIT
Новые версии XMPP Framework (в частности, GCDAsyncSocket) теперь поддерживает вызов, чтобы сделать это проще, так что вы можете просто:
- (void)xmppStream:(XMPPStream *)sender socketWillConnect:(GCDAsyncSocket *)socket
{
// Tell the socket to stay around if the app goes to the background (only works on apps with the VoIP background flag set)
[socket performBlock:^{
[socket enableBackgroundingOnSocket];
}];
}
Существует ограниченное количество программ, которые могут работать в фоновом режиме без ограничений, это программы VOIP, те, которые воспроизводят музыку, и те, которые отслеживают местоположение пользователя. Если вы не выполняете никаких законных действий, то вы ограничены десятью минутами фоновой операции. Обратите внимание, что Apple откажется от приложений, которые пытаются глупыми трюками, такими как воспроизведение «пустых» звуков, чтобы поддерживать приложение в прямом эфире.
Вы можете найти информацию о запущенных задачах в фоновом режиме здесь: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html
Другого варианта я думаю должна иметь программу чата работать, связавшись с сервером, и иметь, что ответы очереди сервера, когда пользователь вне форума, затем доставьте их, когда они будут входить в систему. Не будучи простым программистом, я не знаю, насколько это возможно, но я думаю, что это единственный способ сделать это бесконечно, если вы предлагаете только текстовый чат. Лучшим вариантом было бы сделать ваше приложение VOIP включенным, используя приведенное выше руководство.
EDIT Начиная с выпуска iOS 5.0, также можно получать приложения, зарегистрированные в качестве приложений для газетных книг, для загрузки информации в фоновом режиме, а также множество других фанковых функций, которые также являются только для газет.
-Ash
первую очередь спасибо вам replay..i не хочет, чтобы нажать это приложение для appstore.using IPA-файл для распространения. Я прочитал ссылку, которую вы указали, и добавил VOIP в info.plist .. больше не изменилось в коде..beacuse его все еще не работает в backkground .. – Raj
Я думаю, что вы читали без чтения документ, на который я указал вам; вам нужно сделать больше, чем просто добавить VOIP в info.plist, чтобы заставить его работать. Посмотрите далее страницу в разделе «Внедрение приложения VOIP» – Ash
Мое приложение настроено как приложение на основе местоположения, но через 3 часа в фоновом режиме он отключается от моего сервера XMPP. Кроме того, чтобы установить info.plist в качестве местоположения, есть что-то еще, что нужно установить в xmppframework, чтобы он никогда не отключился? – subharb
В последнем XMPP Framework вы не нужно изменять файлы фреймворка.
Просто сделайте это: 1.Добавьте это к вашей методе подключения
#if !TARGET_IPHONE_SIMULATOR
{
self.xmppStream.enableBackgroundingOnSocket = YES;
}
#endif
2. Добавить ключ к вашему IP-Plist Информация о файле:
, но яблоко отклоняется таким образом ...... – Raju
- 1. ios app background run
- 2. iPhone app background downloads
- 3. Понимание iPhone App Background States
- 4. iphone maps app background image
- 5. Run App в iPhone Simulator
- 6. ipad/iphone app with fixed background image
- 7. Run Loop In Background
- 8. Класс Run in Background
- 9. Run grails run-app программно
- 10. BOSH XMPP iPhone library
- 11. Как сделать wl.device.geo.acquireposition run in background
- 12. Разница между sencha app build -run и sencha app run?
- 13. Android App Custom Background
- 14. Tizen Wearable background app
- 15. reopen app from background
- 16. Резюме background App
- 17. iOS - background app
- 18. App First Run реализация
- 19. Docker run java app
- 20. iPhone App Receive Headset Button Press While In Background
- 21. iphone app background NSTimer (данные опроса с регулярным интервалом)
- 22. iPhone App App App
- 23. Run JQuery в угловом App
- 24. iphone autorotation black background
- 25. Программно изменить iPhone Background
- 26. iphone Background Application
- 27. iPhone Accelerometer in Background
- 28. iphone - NSTimers in background
- 29. iPhone - Buttons background image
- 30. Повторяющаяся задача Android Run In Background
спасибо Джефф, это отлично работает для меня .. очень много :-) – Raj
Управление не собирается "socketWillConnect: (AsyncSocket *) socket" метод. Пожалуйста, помогите – iphonedev23
Элемент управления должен перейти к socketWillConnect: до тех пор, пока вы вызвали addDelegate: на свой объект XMPPStream. Обратите внимание, что вызов socketWillConenct: теперь ожидает параметр GCDAsyncSocket *, а не AsyncSocket * (как из XMPPFramework 3) –