在我的聊天視圖控制器的viewDidLoad中,我寫了self.appDelegate.client?.historyForChannel(currentChannel, start: nil, end: nil, limit: 20, withCompletion:
,它檢索了20條最近的消息。不過,我希望在最近20條消息之前檢索早期/舊消息,以獲得無限滾動功能。我怎樣才能做到這一點?Swift + Pubnub聊天應用加載滾動的舊消息
回答
商店從Pubnub歷史收到的第一條消息的時間戳接收未來20個消息:
self.client?.historyForChannel(channel, start: lastStoredTimstamp, end: nil, limit: 20, reverse: false, withCompletion:
我已經測試過它,它工作得很好。
小說明: 僅使用start參數總是返回比提供的時間標記更早的消息。如果你設置reverse = true,你會得到比所提供的時間標記更新的消息。
請參閱https://www.pubnub.com/docs/swift/storage-and-history PubNub歷史API如何與時間線圖一起工作。
它可以通過UIScrollViewDelegate
完成(在你的情況,這是內部的UITableView)
首先,設置你的UITableView
的代表。
然後,你必須重寫scrollViewDidScroll(_ scrollView: UIScrollView)
,這是一個示例代碼:
let currentOffset = scrollView.contentOffset.y
let maximumOffset = scrollView.contentSize.height - scrollView.frame.size.height
let deltaOffset = maximumOffset - currentOffset
if (deltaOffset <= 0)
// call to self.appDelegate.client?.historyForChannel with the offsets
)
的,如果當你已經達到到列表的底部表達會罷工。
self.appDelegate.client?.historyForChannel
包含開始&結束偏移量。可以通過在每次調用historyForChannel
後加上+20(在某處聲明一個類變量)來計算開始時間,但只有響應中的對象沒有某些唯一ID時才能起作用。
問題是'start'和'end'是NSNumbers,它們應該是日期。這就是爲什麼我不能爲每個卷軸做簡單的+20 –
- 1. 製作聊天消息正文滾動
- 2. Angular的Pubnub聊天
- 3. 使用Pubnub的聊天應用程序
- 4. PubNub中的聊天消息訂購策略
- 5. Swift 3 Firebase聊天應用程序重複消息
- 6. 當聊天室的任何用戶發佈消息時,如何重新加載聊天室的消息?
- 7. ios聊天消息應用程序
- 8. Javascript + Pubnub聊天室通知
- 9. 解析+ PubNub:私人聊天
- 10. Quickblox iOS下載聊天消息附件
- 11. 聊天滾動條
- 12. 聊天消息窗口移動
- 13. Rails api PUSH聊天消息
- 14. javascript聊天顯示消息
- 15. 發送聊天消息
- 16. Node.js聊天應用不加載
- 17. 當發送消息時,Socket.io聊天重新加載頁面
- 18. PubNub如何配置基本的聊天應用程序ios
- 19. 顯示聊天消息使用Qt(C++)
- 20. 消息顯示使用Skype SDK聊天
- 21. 使用FQL讀取聊天消息
- 22. 滾動到聊天窗口
- 23. Pubnub許多私人聊天在ios
- 24. Pubnub訂閱1對1聊天
- 25. iOS聊天應用程序的用戶狀態消息
- 26. 滾動像WhatsApp聊天滾動到頂部,滾動進一步顯示「存檔聊天」
- 27. Pubnub聊天設置爲rails應用程序
- 28. Parse Messenger聊天Swift:信息有問題
- 29. 與Swift和Firebase聊天應用邏輯
- 30. Laravel聊天消息。保存圖像發送聊天?
您可否在您的問題中詳細說明「我需要檢索另外20條消息」部分!哪20條消息? –
說消息歷史有40條消息,viewDidLoad檢索消息[0]〜[19],我將如何檢索[20]〜[39]? –