创建与读取合并聊天记录
合并消息由开发者从聊天界面选择原消息,并自行定义标题和概要。SDK 负责排序、提取参与者/媒体引用、生成详情文件并随消息上传。
创建
objc
- (nullable BIMMultipartMessage *)createMultipartMessageWithMessages:(NSArray<BIMMessage *> *)messages
title:(NSString *)title
abstractList:(NSArray<NSString *> *)abstractList;1
2
3
2
3
swift
let selectedMessages: [BIMMessage] = ...
let abstracts = selectedMessages.prefix(4).map { message in
"\(message.displayName ?? ""): \(message.chatDisplayContent(loginUserId))"
}
guard let merged = BIMManager.sharedInstance().createMultipartMessage(
messages: selectedMessages,
title: "项目群的聊天记录",
abstractList: abstracts
) else {
return
}
BIMManager.sharedInstance().send(merged,
to: conversation,
assemble: {},
progress: nil,
succ: {},
fail: { code, desc in })1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
创建失败时返回 nil。调用前应保证:
messages、title、abstractList均非空;- 概要数组中没有空字符串;
- 选择的消息来自同一聊天页面,避免生成语义混乱的聊天记录;
- 标题和概要展示文案由应用定义,SDK 不根据群名或成员名替开发者生成。
SDK 会按 deliveryTime、deliverySeq、deliveryId 排序。发送阶段会自动上传详情文件,不需要开发者接触 domainId、详情文件 ID 或媒体引用列表。
展示概要
会话气泡可直接读取:
BIMMultipartMessage.title:标题;BIMMultipartMessage.content:由abstractList以换行符连接后的概要。
下载详情消息
objc
[multipartMessage downloadMessages:^(NSArray<BIMMessage *> *messages) {
// 跳转到聊天记录详情页。
} fail:^(int code, NSString *desc) {
// 展示加载失败,并提供重试。
}];1
2
3
4
5
2
3
4
5
swift
multipartMessage.downloadMessages { messages in
showMergedMessageDetail(messages)
} fail: { code, desc in
showError(desc)
}1
2
3
4
5
2
3
4
5
SDK 会优先返回内存或本地缓存;接收到新合并消息时也会尝试预下载详情。首次读取且本地没有缓存时会从媒体服务下载。成功数组按原始时间顺序排列,元素仍是标准 BIMMessage 子类,可复用普通消息渲染器。
详情下载失败不影响外层合并消息本身。页面应保留标题与概要,并提供重试入口。
