createMergerMessage method

Future<V2TimValueCallback<V2TimMsgCreateInfoResult>> createMergerMessage({
  1. List<V2TimMessage>? messageList,
  2. List<String>? msgIDList,
  3. required String title,
  4. required List<String> abstractList,
  5. required String compatibleText,
})

创建合并消息

我们在收到一条合并消息的时候,通常会在聊天界面这样显示:

|vinson 和 lynx 的聊天记录 | – title (标题)

|vinson:新版本 SDK 计划什么时候上线呢? | – abstract1 (摘要信息1)

|lynx:计划下周一,具体时间要看下这两天的系统测试情况.. | – abstract2 (摘要信息2)

|vinson:好的. | – abstract3 (摘要信息3)

聊天界面通常只会展示合并消息的标题和摘要信息,完整的转发消息列表,需要用户主动点击转发消息 UI 后再获取。

多条被转发的消息可以被创建成一条合并消息 V2TIMMessage,然后调用 sendMessage 接口发送,实现步骤如下:

  1. 调用 createMergerMessage 创建一条合并消息 V2TIMMessage。
  2. 调用 sendMessage 发送转发消息 V2TIMMessage。

收到合并消息解析步骤:

  1. 通过 V2TIMMessage 获取 mergerElem。
  2. 通过 mergerElem 获取 title 和 abstractList UI 展示。
  3. 当用户点击摘要信息 UI 的时候,调用 downloadMessageList 接口获取转发消息列表。

messageList 消息列表(最大支持 300 条,消息对象必须是 V2TIM_MSG_STATUS_SEND_SUCC 状态,消息类型不能为 V2TIMGroupTipsElem)。

msgIDList 消息 ID 列表,待废弃,请使用 messageList 参数。

title 合并消息的来源,比如 "vinson 和 lynx 的聊天记录"、"xxx 群聊的聊天记录"。

abstractList 合并消息的摘要列表(最大支持 5 条摘要,每条摘要的最大长度不超过 100 个字符),不同的消息类型可以设置不同的摘要信息,比如: 文本消息可以设置为:sender:text,图片消息可以设置为:sender:图片,文件消息可以设置为:sender:文件

compatibleText 合并消息兼容文本,低版本 SDK 如果不支持合并消息,默认会收到一条文本消息,文本消息的内容为 compatibleText, 该参数不能为 null。

Implementation

Future<V2TimValueCallback<V2TimMsgCreateInfoResult>> createMergerMessage({
  List<V2TimMessage>? messageList,
  List<String>? msgIDList,
  required String title,
  required List<String> abstractList,
  required String compatibleText,
}) async {
  if (kIsWeb) {
    return TencentCloudChatSdkPlatform.instance.createMergerMessage(
        msgIDList: msgIDList,
        title: title,
        abstractList: abstractList,
        compatibleText: compatibleText);
  }

  return TIMMessageManager.instance.createMergerMessage(
      msgList: messageList,
      msgIDList: msgIDList,
      title: title,
      abstractList: abstractList,
      compatibleText: compatibleText
  );
}