会话管理 (Conversation)
会话模块负责管理单聊(.single)、群聊(.superGroup / .writeGroup)及系统通知(.notification)会话列表、置顶、免打扰、阅后即焚、草稿以及未读数清零。
1. 获取会话列表与单个会话
1.1 获取全部会话或分页获取
// 一次性获取本地所有会话(按置顶与最新消息时间排序)
let allConversations = try await QXJIMClient.shared.getAllConversationList()
// 分页获取会话列表(适合超大数量会话场景)
let pageConversations = try await QXJIMClient.shared.getConversationListSplit(offset: 0, count: 50)
1.2 获取或创建指定聊天对象的会话
进入与某个好友或某个群的聊天页时,调用 getOneConversation(若本地尚无该会话,SDK 会自动组装并返回会话对象):
// 获取单聊会话
let singleConv = try await QXJIMClient.shared.getOneConversation(
sessionType: .single,
sourceID: "u_10002"
)
// 获取工作群会话
let groupConv = try await QXJIMClient.shared.getOneConversation(
sessionType: .superGroup,
sourceID: "group_8888"
)
// 直接读取解码后的最后一条消息对象
if let lastMsg = singleConv.decodedLatestMessage {
print("最后一条消息内容: \(lastMsg.textElem?.content ?? "")")
}
1.3 批量获取与计算会话 ID
// 根据 sourceID 与会话类型同步计算会话 ID(例如 "si_u1_u2" 或 "sg_groupID")
let convID = QXJIMClient.shared.getConversationIDBySessionType(
sourceID: "u_10002",
sessionType: .single
)
// 批量获取多个会话
let convs = try await QXJIMClient.shared.getMultipleConversation(conversationIDs: [convID])