221 lines
8.6 KiB
Dart
221 lines
8.6 KiB
Dart
import 'package:tencent_cloud_chat_sdk/enum/V2TimAdvancedMsgListener.dart';
|
||
import 'package:tencent_cloud_chat_sdk/enum/V2TimSimpleMsgListener.dart';
|
||
import 'package:tencent_cloud_chat_sdk/enum/get_group_message_read_member_list_filter.dart';
|
||
import 'package:tencent_cloud_chat_sdk/enum/history_msg_get_type_enum.dart';
|
||
import 'package:tencent_cloud_chat_sdk/enum/message_priority_enum.dart';
|
||
import 'package:tencent_cloud_chat_sdk/enum/offlinePushInfo.dart';
|
||
import 'package:tencent_cloud_chat_sdk/enum/receive_message_opt_enum.dart';
|
||
import 'package:tencent_cloud_chat_sdk/models/v2_tim_callback.dart'
|
||
if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_callback.dart';
|
||
import 'package:tencent_cloud_chat_sdk/models/v2_tim_group_message_read_member_list.dart'
|
||
if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_group_message_read_member_list.dart';
|
||
import 'package:tencent_cloud_chat_sdk/models/v2_tim_message.dart'
|
||
if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_message.dart';
|
||
import 'package:tencent_cloud_chat_sdk/models/v2_tim_message_change_info.dart'
|
||
if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_message_change_info.dart';
|
||
import 'package:tencent_cloud_chat_sdk/models/v2_tim_message_list_result.dart'
|
||
if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_message_list_result.dart';
|
||
import 'package:tencent_cloud_chat_sdk/models/v2_tim_message_online_url.dart'
|
||
if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_message_online_url.dart';
|
||
import 'package:tencent_cloud_chat_sdk/models/v2_tim_message_receipt.dart'
|
||
if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_message_receipt.dart';
|
||
import 'package:tencent_cloud_chat_sdk/models/v2_tim_message_search_param.dart'
|
||
if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_message_search_param.dart';
|
||
import 'package:tencent_cloud_chat_sdk/models/v2_tim_message_search_result.dart'
|
||
if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_message_search_result.dart';
|
||
import 'package:tencent_cloud_chat_sdk/models/v2_tim_msg_create_info_result.dart'
|
||
if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_msg_create_info_result.dart';
|
||
import 'package:tencent_cloud_chat_sdk/models/v2_tim_value_callback.dart'
|
||
if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_value_callback.dart';
|
||
|
||
class MessageListResponse {
|
||
final bool haveMoreData;
|
||
final List<V2TimMessage> data;
|
||
|
||
MessageListResponse({required this.haveMoreData, required this.data});
|
||
}
|
||
|
||
abstract class MessageService {
|
||
Future<List<V2TimMessage>> getHistoryMessageList({
|
||
HistoryMsgGetTypeEnum getType = HistoryMsgGetTypeEnum.V2TIM_GET_LOCAL_OLDER_MSG,
|
||
String? userID,
|
||
String? groupID,
|
||
int lastMsgSeq,
|
||
required int count,
|
||
String? lastMsgID,
|
||
List<int>? messageTypeList,
|
||
});
|
||
|
||
Future<V2TimMessageListResult?> getHistoryMessageListWithComplete({
|
||
HistoryMsgGetTypeEnum getType = HistoryMsgGetTypeEnum.V2TIM_GET_LOCAL_OLDER_MSG,
|
||
String? userID,
|
||
String? groupID,
|
||
int lastMsgSeq,
|
||
required int count,
|
||
String? lastMsgID,
|
||
List<int>? messageTypeList,
|
||
});
|
||
|
||
Future<MessageListResponse> getHistoryMessageListV2({
|
||
HistoryMsgGetTypeEnum getType = HistoryMsgGetTypeEnum.V2TIM_GET_LOCAL_OLDER_MSG,
|
||
String? userID,
|
||
String? groupID,
|
||
int lastMsgSeq,
|
||
required int count,
|
||
String? lastMsgID,
|
||
List<int>? messageTypeList,
|
||
});
|
||
|
||
Future addSimpleMsgListener({
|
||
required V2TimSimpleMsgListener listener,
|
||
});
|
||
|
||
Future addAdvancedMsgListener({
|
||
required V2TimAdvancedMsgListener listener,
|
||
});
|
||
|
||
Future<void> removeSimpleMsgListener({V2TimSimpleMsgListener? listener});
|
||
|
||
Future<V2TimMsgCreateInfoResult?> createTextMessage({required String text});
|
||
|
||
Future<V2TimMsgCreateInfoResult?> createFaceMessage({required int index, required String data});
|
||
|
||
Future<V2TimMsgCreateInfoResult?> createCustomMessage({required String data});
|
||
|
||
Future<V2TimMsgCreateInfoResult?> createTextAtMessage({required String text, required List<String> atUserList});
|
||
|
||
Future<V2TimValueCallback<V2TimMessage>> sendMessage(
|
||
{required String id, // 自己创建的ID
|
||
required String receiver,
|
||
required String groupID,
|
||
MessagePriorityEnum priority = MessagePriorityEnum.V2TIM_PRIORITY_NORMAL,
|
||
bool onlineUserOnly = false,
|
||
bool isExcludedFromUnreadCount = false,
|
||
bool needReadReceipt = false,
|
||
OfflinePushInfo? offlinePushInfo,
|
||
String? cloudCustomData, // 云自定义消息字段,只能在消息发送前添加
|
||
String? localCustomData,
|
||
bool isExcludedFromContentModeration});
|
||
|
||
Future<V2TimValueCallback<V2TimMessage>> sendReplyMessage({
|
||
required String id, // 自己创建的ID
|
||
required String receiver,
|
||
required String groupID,
|
||
OfflinePushInfo? offlinePushInfo,
|
||
bool needReadReceipt = false,
|
||
required V2TimMessage replyMessage, // 被回复的消息
|
||
});
|
||
|
||
Future<V2TimValueCallback<V2TimMessage>> reSendMessage({required String msgID, bool onlineUserOnly});
|
||
|
||
Future<V2TimValueCallback<V2TimMessageChangeInfo>> modifyMessage({required V2TimMessage message});
|
||
|
||
Future<V2TimMsgCreateInfoResult?> createImageMessage({String? imageName, String? imagePath, dynamic inputElement});
|
||
|
||
Future<V2TimMsgCreateInfoResult?> createVideoMessage(
|
||
{String? videoPath = "", String? type = "", int? duration = 0, String? snapshotPath = "", dynamic inputElement});
|
||
|
||
Future<V2TimMsgCreateInfoResult?> createFileMessage(
|
||
{String? filePath, required String fileName, dynamic inputElement});
|
||
|
||
Future<V2TimMsgCreateInfoResult?> createLocationMessage(
|
||
{required String desc, required double longitude, required double latitude});
|
||
|
||
Future<V2TimMsgCreateInfoResult?> createSoundMessage({
|
||
required String soundPath,
|
||
required int duration,
|
||
});
|
||
|
||
Future<V2TimMsgCreateInfoResult?> createForwardMessage({
|
||
required String msgID,
|
||
});
|
||
|
||
Future<V2TimMsgCreateInfoResult?> createMergerMessage({
|
||
required List<String> msgIDList,
|
||
required String title,
|
||
required List<String> abstractList,
|
||
required String compatibleText,
|
||
});
|
||
|
||
Future<V2TimCallback> deleteMessageFromLocalStorage({
|
||
required String msgID,
|
||
Object? webMessageInstance,
|
||
});
|
||
|
||
Future<V2TimCallback> revokeMessage({required String msgID, Object? webMessageInstance});
|
||
|
||
Future<V2TimCallback> clearC2CHistoryMessage({
|
||
required String userID,
|
||
});
|
||
|
||
Future<V2TimCallback> clearGroupHistoryMessage({
|
||
required String groupID,
|
||
});
|
||
|
||
Future<V2TimCallback> markC2CMessageAsRead({
|
||
required String userID,
|
||
});
|
||
|
||
Future<V2TimCallback> markGroupMessageAsRead({
|
||
required String groupID,
|
||
});
|
||
|
||
Future<void> removeAdvancedMsgListener({V2TimAdvancedMsgListener? listener});
|
||
|
||
Future<List<V2TimMessage>?> downloadMergerMessage({
|
||
required String msgID,
|
||
});
|
||
|
||
Future<V2TimCallback> deleteMessages({required List<String> msgIDs, List<dynamic>? webMessageInstanceList});
|
||
|
||
Future<List<V2TimMessage>?> findMessages({
|
||
required List<String> messageIDList,
|
||
});
|
||
|
||
Future<V2TimValueCallback<V2TimMessageSearchResult>> searchLocalMessages({
|
||
required V2TimMessageSearchParam searchParam,
|
||
});
|
||
|
||
Future<V2TimCallback> setLocalCustomInt({required String msgID, required int localCustomInt});
|
||
|
||
Future<V2TimCallback> setLocalCustomData({required String msgID, required String localCustomData});
|
||
|
||
Future<V2TimCallback> setC2CReceiveMessageOpt({
|
||
required List<String> userIDList,
|
||
required ReceiveMsgOptEnum opt,
|
||
});
|
||
|
||
Future<V2TimCallback> setGroupReceiveMessageOpt({
|
||
required String groupID,
|
||
required ReceiveMsgOptEnum opt,
|
||
});
|
||
|
||
Future<V2TimValueCallback<V2TimGroupMessageReadMemberList>> getGroupMessageReadMemberList({
|
||
required String messageID,
|
||
required GetGroupMessageReadMemberListFilter filter,
|
||
int nextSeq = 0,
|
||
int count = 100,
|
||
});
|
||
|
||
Future<V2TimValueCallback<List<V2TimMessageReceipt>>> getMessageReadReceipts({
|
||
required List<String> messageIDList,
|
||
});
|
||
|
||
Future<V2TimCallback> sendMessageReadReceipts({
|
||
required List<String> messageIDList,
|
||
});
|
||
|
||
Future<V2TimValueCallback<V2TimMessageOnlineUrl>> getMessageOnlineUrl({
|
||
required String msgID,
|
||
});
|
||
|
||
Future<V2TimCallback> downloadMessage({
|
||
required String msgID,
|
||
required int messageType,
|
||
required int imageType, // 图片类型,仅messageType为图片消息是有效
|
||
required bool isSnapshot, // 是否是视频封面,仅messageType为视频消息是有效
|
||
});
|
||
|
||
Future<String> translateText(String text, String target);
|
||
}
|