import 'dart:convert'; import 'package:tencent_cloud_chat_sdk/enum/message_elem_type.dart'; import 'package:tencent_cloud_chat_sdk/models/v2_tim_message.dart'; String parseMessageSummary(V2TimMessage msg) { switch (msg.elemType) { case MessageElemType.V2TIM_ELEM_TYPE_TEXT: return msg.textElem?.text ?? '[文本消息]'; case MessageElemType.V2TIM_ELEM_TYPE_IMAGE: return '[图片]'; case MessageElemType.V2TIM_ELEM_TYPE_SOUND: return '[语音]'; case MessageElemType.V2TIM_ELEM_TYPE_VIDEO: return '[视频]'; case MessageElemType.V2TIM_ELEM_TYPE_FILE: return '[文件]'; case MessageElemType.V2TIM_ELEM_TYPE_LOCATION: return '[位置]'; case MessageElemType.V2TIM_ELEM_TYPE_FACE: return '[表情]'; case MessageElemType.V2TIM_ELEM_TYPE_CUSTOM: return _parseCustomMessage(msg.customElem?.data); case MessageElemType.V2TIM_ELEM_TYPE_MERGER: return '[合并转发消息]'; case MessageElemType.V2TIM_ELEM_TYPE_GROUP_TIPS: return '[群提示]'; default: return '[未知消息类型]'; } } String _parseCustomMessage(String? data) { if (data == null || data.isEmpty) return '[自定义消息]'; try { final jsonData = json.decode(data); final type = jsonData['type']; switch (type) { case 'interaction': return '[互动] ${jsonData['action'] ?? ''}'; case 'forward': return '[转发] ${jsonData['title'] ?? ''}'; default: return '[自定义消息]'; } } catch (_) { return '[自定义消息]'; } }