获取会话列表
接口
objc
- (void)getConversationListWithSucc:(BIMConversationListSucc)succ fail:(BIMFail)fail;
- (void)getLocalConversationListWithSucc:(BIMConversationListSucc)succ fail:(BIMFail)fail;
- (void)setConversationDraft:(NSString *)chatId draftText:(NSString * _Nullable)draftText;
- (void)clearConversationDraft:(NSString *)chatId;
- (void)getConversationSetting:(BIMConversation *)conversation succ:(void (^)(BIMConversationSetting * _Nullable setting))succ fail:(BIMFail)fail;
- (void)updateConversationSetting:(BIMConversation *)conversation setting:(BIMConversationSetting *)setting succ:(BIMSucc)succ fail:(BIMFail)fail;
- (void)deleteConversation:(BIMConversation *)conversation succ:(BIMSucc)succ fail:(BIMFail)fail;getConversationListWithSucc 会先返回本地缓存,随后在内部同步服务端;远端变化通过 BIMConversationListener 的新增/变更回调通知。只需要本地快照且不希望发起网络请求时,使用 getLocalConversationListWithSucc。
代码示例
swift
BIMManager.sharedInstance().getConversationList { conversations in
print("conversation count=\(conversations.count)")
} fail: { code, desc in
print("getConversationList fail: \(code) \(desc)")
}未读数字段
每个 BIMConversation.unreadCount 由 SDK 根据有效序列计算:
text
max(lastDeliverySeq - max(selfReadSeq, setting.localSeq), 0)服务端同步返回的独立 unread_count 不作为最终真值。后台回前台或重新漫游后,SDK 会保留更大的本地 lastDeliverySeq/selfReadSeq,再重新计算未读数,避免旧响应覆盖本地已读进度。
接入方直接展示 conversation.unreadCount 即可,不要再次对序列做一套不同的计算。
