iOS IMKit 功能列表

本页用能力矩阵对比 10 个 IMKit 组件的 UI 能力,并给出每个组件的行为摘要。矩阵由 IDL behaviors / props 文本推导,完整行为见组件页与组件 API。

组件与能力矩阵​

组件排序 / 置顶未读角标免打扰空态 / 骨架时间分割发送状态已读回执消息渲染输入与草稿@ 提醒主题格式化 / 多语言
ConversationListView✓✓✓✓——✓—✓✓✓✓
ChatView————✓—✓✓✓✓—✓
MessageBubble———————✓✓—✓—
MessageInput——✓—————✓✓——
Avatar———————————✓
UnreadBadge—✓✓——————✓—✓
TimeSeparator————✓——————✓
MessageStatusIndicator—✓———✓✓—————
Theme———————✓—✓✓—
IMKitFacade——————————✓✓

✓ 表示 IDL 行为/属性文本中声明了该能力;— 表示未声明。矩阵用于快速选型,具体交互细节以组件页为准。

组件行为摘要​

组件职责行为(来自 IDL)数据源
ConversationListView会话列表排序:置顶优先,其余按 updatedAt 倒序;未读角标:unreadCount>0 显示;>99 显示 99+;mention count 独立角标;免打扰(notificationLevel=2)显示静音图标且不显示红点(保留数字可选);空闲(无会话)显示空态;加载中显示骨架;点击会话触发 select,宿主负责跳转 ChatViewIMLib.getConversationList / CONVERSATION 事件增量更新
ChatView会话详情(消息流 + 输入区)倒序渲染(最新在底部);新消息到达自动滚底(用户上翻时给出“有新消息”提示);按 messageId 去重;本地先显示 pending 气泡,ack 后替换为服务端消息;时间分隔:同一会话间隔 >5 分钟显示时间条;撤回消息渲染为占位文案“消息已撤回”,不显示原文;引用消息渲染引用块;@提及在文本中高亮;已读回执:发送者可见已读人数/状态(群聊按 readCounts/totalMembers);翻页加载历史,beforeSeq 游标,hasMore=false 时显示“没有更多”;向每个消息气泡透传 message.reactions / message.expansion,并转发 onReactionClick / onReactionLongPress(setMessages / appendMessages / 宿主变更消息后始终取最新值)—
MessageBubble消息气泡(按内容类型渲染)回应 chip 按 reactionTime 升序排列(同值保持输入顺序);hasCurrentUserReacted=true 的 chip 高亮为 active 态(主题色描边 + aria-pressed=true);chip 计数 >99 显示 99+;计数<=0 或 reactionId 空的 chip 不渲染;消息扩展徽标按 key:value 渲染,最多 3 对,超出部分显示 +N(N=未展示对数);气泡长按(pointerdown >=500ms)或右键触发 reaction_longpress(message) / onReactionLongPress,由宿主打开回应选择器;streaming=true 时 content.type=stream 渲染增量文本 + 生成中光标;complete 后收敛为普通文本气泡(streaming:false 可关闭)—
MessageInput输入区输入时 500ms 防抖触发 typing(true),3s 无输入触发 typing(false);被禁言(muted=true)禁用发送并提示;仍可查看;草稿自动保存(IMLib.saveTextMessageDraft),发送成功后清空;群聊支持 @ 选择器(全员/指定成员),生成 mentionedInfo—
Avatar头像url 缺失或加载失败时显示姓名首字/末字,背景色由 userId 哈希稳定生成—
UnreadBadge未读/提及角标0 隐藏;>99 显示 99+;muted 用灰点;提及用 @ 角标—
TimeSeparator时间分隔/格式化当天 HH:mm;昨天“昨天 HH:mm”;7 天内“周X HH:mm”;更早 YYYY-MM-DD HH:mm—
MessageStatusIndicator发送状态sending 转圈;failed 显示重发;单聊显示已读/未读;群聊显示 n/m—
Theme主题令牌默认跟随系统;宿主可覆盖令牌;暗色对比度满足可读性—
IMKitFacade组件门面/挂载入口mount/update/destroy 生命周期幂等;同一容器重复 mount 复用实例;组件销毁释放监听—

按场景选择​

场景推荐组件
会话中心 / 消息首页ConversationListView + UnreadBadge
单聊 / 群聊页面ChatView + MessageInput
消息流渲染MessageBubble + TimeSeparator
状态与反馈MessageStatusIndicator + UnreadBadge
统一外观Theme(暗色 / 品牌色)
整体接入IMKitFacade
超级群频道切换无频道 UI 组件(Native/iOS/HarmonyOS);Electron 复用 Web 组件