2016-08-01 32 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仍然收到旧的历史!

任何人都试图清除pubnub频道的历史记录?

任何帮助pleasssse?

谢谢,

+0

您最好根据用户/设备信息使用唯一的机会名称 –

+0

不知何故,'endDate'没有得到零或重置到最后一次历史记录调用时间,但我认为您正在接近这是错误的,你应该是stor将每个消息的发布时间标记本地发送到设备。当设备重新连接时,使用最后一条消息timetoken获取历史记录(将其用作'endDate'值)。 –

+0

@CraigConover谢谢,但你是什么意思的: “当设备重新连接时,使用这最后一条消息timetoken获取历史记录(使用它作为endDate值)” 你能给我更多的细节吗? 谢谢 – Rawan

回答

0

历史API允许指定您想要从中获取消息的时间范围。如果您将存储并且永远不会重置为nil(因为它将被视为最后收到的消息)时间令牌(message.data.timet‌​oken)并将其作为endDate与历史记录API一起使用(如@CraigConover所建议的) - 使用此设置历史记录将从中获取最后的消息(包括来自哪个日期的消息),使用这种方法不会从上次应用程序运行时获取应用程序和用户所知道的数据,记录的新用户将不会收到来自

相关问题