会话列表(ConversationListView)

会话列表:ConversationListView 是 IDL 定义的跨端 UI 组件,props / events / behaviors 在各平台语义一致。本页给出契约属性、事件、渲染行为、数据源与 HarmonyOS 端绑定/示例。

契约预留

本平台尚未实现:以下绑定声明来自已冻结契约,示例标注为契约样例。

契约属性(props)​

属性类型必填说明
conversationsConversation[]是会话数组(来自 IMLib.getConversationList / CONVERSATION 事件)
activeTargetIdstring否当前高亮会话的 targetId
themeTheme否主题对象(mode + 9 个颜色令牌)
options{showPinned:bool,showUnread:bool,showDraft:bool,showMention:bool}否显示选项(置顶 / 未读 / 草稿 / @ 提及):{ showPinned:bool, showUnread:bool, showDraft:bool, showMention:bool }

事件​

事件参数说明
selectconversation点击会话,宿主负责跳转到 ChatView
longpressconversation长按会话,宿主展示操作菜单(置顶 / 免打扰 / 删除)
refresh—下拉刷新,宿主重新拉取会话列表

渲染行为​

  • 排序:置顶优先,其余按 updatedAt 倒序
  • 未读角标:unreadCount>0 显示;>99 显示 99+;mention count 独立角标
  • 免打扰(notificationLevel=2)显示静音图标且不显示红点(保留数字可选)
  • 空闲(无会话)显示空态;加载中显示骨架
  • 点击会话触发 select,宿主负责跳转 ChatView

数据源​

IMLib.getConversationList / CONVERSATION 事件增量更新

依赖边界

组件不直连网络与数据库:会话/消息由宿主从 IMLib 拉取后传入,组件只做排序、角标、格式化与渲染。

平台绑定​

项值
公开符号 / 签名struct ConversationListView(@Component):props conversations/activeTargetId/theme/options;回调 onSelect(conversation)/onLongPress(conversation)/onRefresh();行为=置顶优先+updatedAt 倒序、未读 99+、muted 灰点(不显示红点)、空态/骨架
导出列表包含是
UI 框架ArkUI 声明式组件(@Component struct),预留命名路由

使用示例​

ArkTS(契约预留)
// HarmonyOS 绑定为契约预留,以下为声明(bindings.harmony.imkit.methodMap)
// struct ConversationListView(@Component):props conversations/activeTargetId/theme/options;回调 onSelect(conversation)/onLongPress(conversation)/onRefresh();行为=置顶优先+updatedAt 倒序、未读 99+、muted 灰点(不显示红点)、空态/骨架

const kit = new IMKitFacade();
kit.mount(container); // 组件:ConversationListView
kit.update({ locale: 'zh-CN' });

相关文档​