融雲根據關鍵字獲取搜索聊天記錄

通過 RongIMClient.getInstance().searchMessages 方法可以查詢關鍵字歷史消息

參數類型:

這裏是引用
conversationType //聊天類型
targetId // 聊天的ID
keyWords //搜索關鍵字
10 //搜索的最大條數
0 //開始時間 我不太清楚 傳的0 new
RongIMClient.ResultCallback<List>() //查詢的接口回調 具體的代碼是

具體實例:


  RongIMClient.getInstance().searchMessages(conversationType, targetId, keyWords, 10, 0, new RongIMClient.ResultCallback<List<Message>>() {
            @Override
            public void onSuccess(List<Message> messages) {
  
            }

            @Override
            public void onError(RongIMClient.ErrorCode errorCode) {

            }
        });

返回的是一個List<Message>我們需要循環解析,然後放入我們自己的Bean類中 最常用的就是添加content聊天內容 ,然後通過Message類裏的senderUserId請求我們的後臺接口重新賦值頭像名字等信息 ,就可以展示了。 (數據需要我們自己維護 比如頭像 姓名 融雲只返回了聊天內容和ID)

然後。。。。。。
點擊當前展示的Item消息,跳轉到聊天頁面展示出當前的歷史消息,可以直接通過Intent跳轉,接受通過getIntent.getParcelableExtra()接受當前的Message,最後通過
RongIM.getInstance().getHistoryMessages獲取歷史記錄消息 (這個方法文檔上標註的很明確)搜索出來得到的也是個List<Message>
最後通過

//注:此次的fragment對象是ConversationFragment
fragement.getMessageAdapter().clear(); //清除當前頁面的歷史記錄
for(int i=0;i<messages.size();i++){
	//重新賦值新的搜索出來的聊天記錄
 	 fragement.getMessageAdapter().add(UIMessage.obtain(messages.get(i)));
}
//應爲搜索出來的不包括我們自己點擊的呢條信息 所以最後還是要添加上我們點擊的呢個Message
fragement.getMessageAdapter().add(UIMessage.obtain(message));
fragement.getMessageAdapter().notifyDataSetChanged();

問題是沒有微信呢麼連貫,只能顯示當前消息的前幾條數據,後幾條數據是不顯示的,哎,,,,
總之不是很完美,公司有時間還是自己搞吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章