sendMergerMessage method
Future<V2TimValueCallback<V2TimMessage> >
sendMergerMessage({
- required List<
String> msgIDList, - required String title,
- required List<
String> abstractList, - required String compatibleText,
- required String receiver,
- required String groupID,
- int priority = 0,
- bool onlineUserOnly = false,
- bool isExcludedFromUnreadCount = false,
- Map<
String, dynamic> ? offlinePushInfo, - List<
String> ? webMessageInstanceList,
override
合并消息
我们在收到一条合并消息的时候,通常会在聊天界面这样显示:
|vinson 和 lynx 的聊天记录 | – title (标题)
|vinson:新版本 SDK 计划什么时候上线呢? | – abstract1 (摘要信息1)
|lynx:计划下周一,具体时间要看下这两天的系统测试情况.. | – abstract2 (摘要信息2)
|vinson:好的. | – abstract3 (摘要信息3)
聊天界面通常只会展示合并消息的标题和摘要信息,完整的转发消息列表,需要用户主动点击转发消息 UI 后再获取。
多条被转发的消息可以被创建成一条合并消息 V2TIMMessage,然后调用 sendMessage 接口发送,实现步骤如下:
-
调用 createMergerMessage 创建一条合并消息 V2TIMMessage。
-
调用 sendMessage 发送转发消息 V2TIMMessage。
收到合并消息解析步骤:
-
通过 V2TIMMessage 获取 mergerElem。
-
通过 mergerElem 获取 title 和 abstractList UI 展示。
-
当用户点击摘要信息 UI 的时候,调用 downloadMessageList 接口获取转发消息列表。
注意 web 端使用时必须传入webMessageInstanceList 字段。 在web端返回的消息实例会包含该字段
Implementation
@override
Future<V2TimValueCallback<V2TimMessage>> sendMergerMessage(
{required List<String> msgIDList,
required String title,
required List<String> abstractList,
required String compatibleText,
required String receiver,
required String groupID,
int priority = 0,
bool onlineUserOnly = false,
bool isExcludedFromUnreadCount = false,
Map<String, dynamic>? offlinePushInfo,
List<String>? webMessageInstanceList}) async {
Map<String, dynamic> param = {
"msgIDList": msgIDList,
"title": title,
"abstractList": abstractList,
"compatibleText": compatibleText,
"receiver": receiver,
"groupID": groupID,
"priority": priority,
"onlineUserOnly": onlineUserOnly,
"isExcludedFromUnreadCount": isExcludedFromUnreadCount,
"offlinePushInfo": offlinePushInfo,
"webMessageInstanceList": webMessageInstanceList
};
var resp = V2TimValueCallback<V2TimMessage>.fromJson(
formatJson(
await _channel.invokeMethod(
'sendMergerMessage',
buildMessageMangerParam(
param,
),
),
),
);
log("sendMergerMessage", param, resp.toLogString());
return resp;
}