sendMergerMessage method

  1. @Deprecated('sendMergerMessage自3.6.0开始弃用,我们将创建消息与发送消息分离,请先使用createMergerMessage创建消息,再调用sendMessage发送消息')
Future<V2TimValueCallback<V2TimMessage>> sendMergerMessage({
  1. required List<String> msgIDList,
  2. required String title,
  3. required List<String> abstractList,
  4. required String compatibleText,
  5. required String receiver,
  6. required String groupID,
  7. MessagePriorityEnum? priority = MessagePriorityEnum.V2TIM_PRIORITY_NORMAL,
  8. bool onlineUserOnly = false,
  9. bool isExcludedFromUnreadCount = false,
  10. OfflinePushInfo? offlinePushInfo,
  11. List<String>? webMessageInstanceList,
})

合并消息

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

|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 接口获取转发消息列表。

注意
web 端使用时必须传入webMessageInstanceList 字段。 在web端返回的消息实例会包含该字段

Implementation

@Deprecated(
    'sendMergerMessage自3.6.0开始弃用,我们将创建消息与发送消息分离,请先使用createMergerMessage创建消息,再调用sendMessage发送消息')
Future<V2TimValueCallback<V2TimMessage>> sendMergerMessage(
    {required List<String> msgIDList,
    required String title,
    required List<String> abstractList,
    required String compatibleText,
    required String receiver,
    required String groupID,
    MessagePriorityEnum? priority = MessagePriorityEnum.V2TIM_PRIORITY_NORMAL,
    bool onlineUserOnly = false,
    bool isExcludedFromUnreadCount = false,
    OfflinePushInfo? offlinePushInfo,
    List<String>? webMessageInstanceList}) async {
  return await ImFlutterPlatform.instance.sendMergerMessage(
      msgIDList: msgIDList,
      title: title,
      abstractList: abstractList,
      compatibleText: compatibleText,
      receiver: receiver,
      groupID: groupID,
      priority: priority!.index,
      onlineUserOnly: onlineUserOnly,
      isExcludedFromUnreadCount: isExcludedFromUnreadCount,
      offlinePushInfo: offlinePushInfo?.toJson(),
      webMessageInstanceList: webMessageInstanceList);
}