Как управлять присутствием в фоновом режиме iOS+Pubnub?

Я создал приложение чата, используя Pubnub Framework. Для этого у меня есть возможность присутствия для одного канала, и все пользователи подписываются на этот канал. Но когда я закрываю приложение (фоновый режим), pubnub выдает мне заявление о тайм-ауте для этого пользователя.

Но я хочу показать пользователя в сети, пока пользователь не завершит приложение.

Как мы будем управлять этим сценарием?

Пожалуйста, направляйте.


person ChatApp    schedule 25.04.2015    source источник


Ответы (2)


Я никогда не пользовался PubNub, но просматривая его документацию, я вижу пару вещей, которые вам, возможно, нужно сделать:

1) Вам нужно, чтобы ваш делегат PubNub возвращал «YES» для метода shouldRunClientInBackground. .

or

2) Вы можете изменить plist-файл своего приложения, чтобы указать, что оно должно работать в фоновом режиме. В этой технической заметке Apple для фоновых задач рассказывается, как это сделать.

person Michael Dautermann    schedule 25.04.2015
comment
Однако, к сожалению, приложения, которые сохраняют присутствие в фоновом режиме, скорее всего, будут отклонены Apple. - person girlie_mac; 28.04.2015
comment
Да, я сделал shouldRunClientInBackground= yes, но приложение будет закрыто через 30 секунд в фоновом режиме. Это вызывает проблему с управлением присутствием (в сети/вне сети). Pubnub отключается в фоновом режиме через 30 секунд. - person ChatApp; 05.05.2015
comment
Просто вопрос, как Whatsapp поддерживает подключение/присутствие в фоновом режиме? Но не отвергнуты Apple? - person John; 24.06.2015
comment
@John - Посмотрите на пункт № 2 в моем ответе - это флаг (или атрибут), установленный в файле plist приложения, который сообщает iOS, что приложение должно работать в фоновом режиме. - person Michael Dautermann; 24.06.2015

Вы можете использовать фоновое обновление приложения и сделать запрос пульса присутствия.

Вот простое объяснение фонового обновления приложения.

Не стесняйтесь искать в Google больше результатов

Вы ограничены примерно 30 секундами, чтобы выполнить всю свою работу (должно быть достаточно времени, если у вас есть действующее соединение). Вы также можете контролировать интервал фоновой выборки. Похоже, вам придется реализовать некоторые из них самостоятельно, но это должно быть выполнимо на iOS 7 и iOS 8.

person gurooj    schedule 28.04.2015