2016-08-01 7 views
0

В моем приложении Я использую каналы PubNub для чтения сообщений.Как удалить историю канала Pubnub при выходе из приложения?

я получаю историю в два статуса:

.PNReconnectedCategory 
.PNConnectedCategory 

Я получаю историю, как этот путь:

if let lastOpenedDate = NSUserDefaults.standardUserDefaults().objectForKey(PubNubModel.lastHistoryFetchKey) as? NSDate { 

     let endDate = NSNumber(double:lastOpenedDate.timeIntervalSince1970) 

     if UserHistoryChannel != nil { 

      self.client?.historyForChannel(UserHistoryChannel!, start: nil, end: endDate, withCompletion: getHistoryCompletionBlock) 
     } 
} 

lastOpenedDate является последним получил дата сообщения и

в получении истории Я всегда проверяю его и получаю историю с этой даты и после нее.

при выходе из системы Я установил эту дату на нуль, поэтому, когда пользователь входил в приложение и подключился к Pubnub, при получении истории эта дата будет текущей, и история не будет.

Но публичный паб все еще получает старую историю!

Кто-нибудь пытается очистить историю каналов pubnub?

Любая помощь pleasssse?

спасибо,

+0

Вы должны использовать уникальные названия на основе информации о пользователе/​​устройстве. –

+0

Как-то, 'endDate' не получает нуль или не возвращается к последнему вызову истории. Но я думаю, что вы приближаетесь это неправильно. Вы должны хранить чтобы публиковать расписание каждого сообщения локально на устройстве. Когда устройство снова подключится, используйте последнее сообщение timetoken для получения истории (используйте его как значение 'endDate'). –

+0

@CraigConover спасибо, но что вы имели в виду: «Когда устройство снова подключается, используйте последнее сообщение timetoken, чтобы получить историю (используйте ее как ваше значение endDate)« вы можете дать мне более подробную информацию? спасибо – Rawan

ответ

0

История API позволяет определить временные рамки, из которого вы хотите получать сообщения. Если вы сохраните и никогда не переустановите nil (потому что он будет обработан как последний принятый текст) маркер времени (message.data.timet‌​oken) и используйте его как endDate с API истории (как предложено @CraigConover) - с помощью этой истории настроек будут получены последние сообщения с тех пор (endDate) включительно (включая сообщение, с которого была сделана дата. Использование этого подхода позволяет не извлекать данные, о которых ваше приложение и пользователь знали с момента последнего запуска приложения. Записанные новые пользователи не получат сообщения (ожидают одного) из предыдущая сессия.

 Смежные вопросы

  • Нет связанных вопросов^_^