getMessageList method

  1. @override
Future<Map<String, dynamic>> getMessageList({
  1. required String conversationID,
  2. String? nextReqMessageID,
})
override

Implementation

@override
Future<Map<String, dynamic>> getMessageList({required String conversationID, String? nextReqMessageID}) async {
  if (ImState.chatInstance.value != null) {
    if (kDebugMode) {
      print('>>>>> 拉取消息列表, $conversationID');
    }
    if (conversationID.startsWith('C2C_')) {
      V2TimValueCallback<List<V2TimMessage>> getMessageListResult = await TencentImSDKPlugin.v2TIMManager.getMessageManager().getC2CHistoryMessageList(
        userID: conversationID.split('_')[1],
        count: 20,
        lastMsgID: nextReqMessageID,
      );
      if (getMessageListResult.code == 0) {
        return getMessageListResult.toJson();
      } else {
        developerLog('拉取群聊历史消息失败,$conversationID | ${getMessageListResult.code} | ${getMessageListResult.desc}');
        throw Exception('拉取群聊历史消息失败, ${getMessageListResult.code} | ${getMessageListResult.desc}');
      }
    } else if (conversationID.startsWith('GROUP_')) {
      V2TimValueCallback<List<V2TimMessage>> getMessageListResult = await TencentImSDKPlugin.v2TIMManager.getMessageManager().getGroupHistoryMessageList(
        groupID: conversationID.split('_')[1],
        count: 20,
        lastMsgID: nextReqMessageID,
      );
      if (getMessageListResult.code == 0) {
        return getMessageListResult.toJson();
      } else {
        developerLog('拉取群聊历史消息失败,$conversationID | ${getMessageListResult.code} | ${getMessageListResult.desc}');
        throw Exception('拉取群聊历史消息失败, ${getMessageListResult.code} | ${getMessageListResult.desc}');
      }
    } else {
      developerLog('暂不支持拉取 ${conversationID.split('_')[0]} 类型会话的历史消息');
      throw Exception('暂不支持拉取 ${conversationID.split('_')[0]} 类型会话的历史消息');
    }
  } else {
    developerLog('sdk 未初始化');
    throw Exception('sdk 未初始化');
  }
}