searchMsgFromDB method
- @Deprecated('Use EMChatManager.loadMessagesWithKeyword instead.')
- String keywords,
- {int timestamp = -1,
- int maxCount = 20,
- String from = '',
- EMSearchDirection direction = EMSearchDirection.Up}
根据传入的参数从本地存储中搜索指定数量的消息。
注意:当 maxCount 非常大时,需要考虑内存消耗,目前限制一次最多搜索 400 条数据。
Param keywords
关键词。
Param timestamp
搜索消息的时间点,Unix 时间戳。
Param maxCount
搜索结果的最大条数。
Param from
搜索来自某人或者某群的消息,一般是指会话 ID。
Return 获取的消息列表。
Throws 如果有异常会在这里抛出,包含错误码和错误描述,详见 EMError。
Implementation
@Deprecated('Use EMChatManager.loadMessagesWithKeyword instead.')
///
///
///
/// 根据传入的参数从本地存储中搜索指定数量的消息。
///
/// 注意:当 maxCount 非常大时,需要考虑内存消耗,目前限制一次最多搜索 400 条数据。
///
/// Param [keywords] 关键词。
///
/// Param [timestamp] 搜索消息的时间点,Unix 时间戳。
///
/// Param [maxCount] 搜索结果的最大条数。
///
/// Param [from] 搜索来自某人或者某群的消息,一般是指会话 ID。
///
/// **Return** 获取的消息列表。
///
/// **Throws** 如果有异常会在这里抛出,包含错误码和错误描述,详见 [EMError]。
///
Future<List<EMMessage>> searchMsgFromDB(
String keywords, {
int timestamp = -1,
int maxCount = 20,
String from = '',
EMSearchDirection direction = EMSearchDirection.Up,
}) async {
Map req = Map();
req['keywords'] = keywords;
req['timestamp'] = timestamp;
req['maxCount'] = maxCount;
req['from'] = from;
req['direction'] = direction == EMSearchDirection.Up ? "up" : "down";
Map result =
await ChatChannel.invokeMethod(ChatMethodKeys.searchChatMsgFromDB, req);
try {
EMError.hasErrorFromResult(result);
List<EMMessage> list = [];
result[ChatMethodKeys.searchChatMsgFromDB]?.forEach((element) {
list.add(EMMessage.fromJson(element));
});
return list;
} on EMError catch (e) {
throw e;
}
}