XMPPFramework для iPhone является мощным.У меня все работает, но как поддерживать соединение в фоновом режиме более 10 минут?Я был бы признателен за дополнительную документацию / инструкции о том, как этого добиться.
Так что пример использования прост и распространен: Джо онлайн и в приложении чата для iPhone.Он покидает приложение чата и отправляется в Safari, играет в игру, транслирует фильм и выполняет другие действия в течение 3 часов (или более).Джо хочет продолжать получать сообщения в течение этого времени.
Пример приложения позволяет Джо получать локальные уведомления в фоновом режиме, но, кажется, только на 10 минут.Вот соответствующий код (я думаю).Спасибо!
Чтобы помочь другим людям, даже для достижения этой цели, вам необходимо свойство xBppstream enableBackgroundingSocket to YES (это делается для вас в примере проекта iphoneXMPP, который вы должны скопировать) и в appname-Файл info.plist (т.е. iosChat-info-plist), в который необходимо добавить новую пару ключ / значение.Вы должны щелкнуть правой кнопкой мыши где-нибудь и «добавить строку».Вы должны выбрать для «необходимые фоновые режимы», а затем введите «VoIP».Xcode обнаружит, что вы имеете в виду «Приложение предоставляет услуги передачи голоса по IP» после нажатия кнопки ввода.Это дает вам 10 минут на то, чтобы приложение чата было открыто в фоновом режиме (я думаю).Но мы хотим до бесконечности, и я подозреваю, что ответ лежит в методе ниже.Должен ли я просто «переподключиться» в рамках этого метода или чего-то еще, например, [self connect] (у меня есть метод connect)?
- (void)applicationDidEnterBackground:(UIApplication *)application{
DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);
if ([application respondsToSelector:@selector(setKeepAliveTimeout:handler:)])
{
[application setKeepAliveTimeout:600 handler:^{
DDLogVerbose(@"KeepAliveHandler");
// Do other keep alive stuff here.
}];
}}