1414
1515- ` EMChatManager#asyncFetchHistoryMessages ` :根据 ` EMFetchMessageOption ` 类从服务端分页获取指定会话的历史消息;
1616- ` EMChatManager#doAsyncFetchHistoryMessages ` :从服务器获取指定群成员发送的消息;
17+ - ` EMChatManager#asyncLoadConversationMessagesWithKeyword ` :根据关键字获取本地会话中的消息;
18+ - ` EMChatManager#asyncLoadMessages ` :根据消息 ID 获取单个或多个本地消息;
1719- ` EMConversation#asyncSearchMsgFromDB ` :从本地获取指定群成员发送的消息;
1820- ` EMConversation#getAllMessages/loadMoreMsgFromDB ` :读取本地指定会话的消息;
19- - ` EMChatManager#getMessage ` :根据消息 ID 获取本地消息 ;
21+ - ` EMChatManager#getMessage ` :根据消息 ID 获取单个本地消息 ;
2022- ` EMChatManager#searchMsgFromDB(Type type, long timeStamp, int maxCount, String from, EMConversation.EMSearchDirection direction) ` :获取本地存储的指定会话中特定类型的消息;
2123- ` EMChatManager#searchMsgFromDB(long startTimeStamp, long endTimeStamp, int maxCount) ` :获取一定时间段内本地指定会话中发送和接收的消息;
2224- ` EMConversation#getAllMsgCount ` :从 SDK 本地数据库中获取会话在某个时间段内的全部消息数。
@@ -169,6 +171,46 @@ int pageSize,String cursor,
169171
170172```
171173
174+ ### 根据关键字获取本地会话中的消息
175+
176+ 自 SDK 4.15.1 版本开始,你可以通过设置关键词获取单个会话中的某些消息。SDK 返回会话 ID 及消息 ID 列表,消息 ID 根据你设置的 ` direction ` 参数按照消息时间戳的正序或倒序列明。
177+
178+ ``` java
179+ String keyword= " 时间" ;
180+ EMClient . getInstance(). chatManager(). asyncLoadConversationMessagesWithKeyword(keyword, - 1 , null , EMConversation . EMSearchDirection . UP , EMConversation . EMMessageSearchScope . CONTENT , new EMValueCallBack<Map<String , List<String > > > () {
181+ @Override
182+ public void onSuccess (Map<String , List<String > > value ) {
183+ EMLog . e(TAG , " asyncLoadConversationMessagesWithKeyword onSuccess value:" + value);
184+ }
185+
186+ @Override
187+ public void onError (int error , String errorMsg ) {
188+ EMLog . e(TAG ," asyncLoadConversationMessagesWithKeyword onError error:" + error + " errorMsg:" + errorMsg);
189+ }
190+ });
191+
192+ ```
193+
194+
195+ ### 根据消息 ID 获取单个或多个本地消息
196+
197+ 自 SDK 4.15.1 版本开始,你可以传入单个或多个消息 ID 获取单个本地会话中的消息。
198+
199+ ``` java
200+ // messageIds:消息 ID 列表。每次最多可传入 20 个消息 ID。
201+ EMClient . getInstance(). chatManager(). asyncLoadMessages(messageIds, conversationId, new EMValueCallBack<List<EMMessage > > () {
202+ @Override
203+ public void onSuccess (List<EMMessage > value ) {
204+ EMLog . e(TAG , " asyncLoadMessages onSuccess value:" + value);
205+ }
206+
207+ @Override
208+ public void onError (int error , String errorMsg ) {
209+ EMLog . e(TAG , " asyncLoadMessages onError error:" + error + " errorMsg:" + errorMsg);
210+ }
211+ });
212+ ```
213+
172214### 从本地获取指定群成员发送的消息
173215
174216自 4.14.0 版本开始,对于单个群组会话,你可以从本地获取指定成员(而非全部成员)发送的消息。
@@ -191,7 +233,7 @@ List<EMMessage> messages = conversation.getAllMessages();
191233List<EMMessage > messages = conversation. loadMoreMsgFromDB(startMsgId, pagesize);
192234```
193235
194- ### 根据消息 ID 获取本地消息
236+ ### 根据消息 ID 获取单个本地消息
195237
196238你可以调用 ` getMessage ` 方法根据消息 ID 获取本地存储的指定消息。如果消息不存在会返回空值。
197239
0 commit comments