提示信息
# 社交软件交互细节清单
> 适用于 OpenIM 对接的聊天类 App,共 8 大模块、82 个交互细节。
> 标注 `⚠️ 易漏` 的条目是 AI 生成代码最容易忽略的地方。
---
## 一、聊天列表
| # | 细节描述 | 备注 |
|---|---------|------|
| 1 | 左滑出现「置顶」「删除」按钮,同一时间只允许一个 cell 展开,点击其他 cell 或滚动时自动收起 | ⚠️ 易漏 |
| 2 | 展开状态下点击该 cell 本身,先收起再导航进入详情,而非直接跳转 | ⚠️ 易漏 |
| 3 | 列表滚动时自动收起已展开的 action,防止动画错位 | |
| 4 | 消息未读数超过 99 显示「99+」,红点大小随数字位数自适应 | |
| 5 | 消息内容截断:带图片显示「[图片]」,语音显示「[语音]」,撤回显示「xxx 撤回了一条消息」 | |
| 6 | 时间戳逻辑:今天显示 HH:mm,本周显示星期几,更早显示具体日期 | |
| 7 | 置顶的会话固定在列表顶部,与未置顶之间有视觉分隔(背景色或分割线) | |
| 8 | 正在输入时显示「对方正在输入...」,超时或发送后消失 | |
| 9 | 免打扰会话的未读角标用灰色而非红色展示 |免打扰先不做 |
| 10 | 新消息到来时,若已滚动到顶部则直接刷新顺序,否则显示「X 条新消息」提示气泡 | |
| 11 | 考虑以后升级新版增加新类型的消息情况,如果无法解析的消息,要显示当前版本呢不支持展示该消息,请升级后查看 | |
---
## 二、消息气泡 & 输入框
| # | 细节描述 | 备注 |
|---|---------|------|
| 1 | 长按气泡弹出操作菜单(复制、撤回),菜单不能超出屏幕边缘 | ⚠️ 易漏 |
| 2 | 撤回消息 5 分钟内可操作,自己发的才有撤回选项,且撤回后双方均看到提示 | |
| 3 | 输入框随文字高度自动增高,超过 5 行变为可滚动区域,不能无限撑高 | |
| 4 | 软键盘弹起时消息列表自动上移,保持最新消息可见,不被键盘遮挡 | |
| 5 | 输入框有草稿机制:离开会话时保存草稿,回来后自动填充并在列表显示「[草稿]」 | |
| 6 | 消息列表首次进入滚动到最底部,有新消息时若用户往上翻看则不自动滚动到底部 | |
---
## 六、文件 & 媒体
| # | 细节描述 | 备注 |
|---|---------|------|
| 2 | 图片查看器支持双指缩放,横向滑动切换同会话图片,下载 / 分享入口在角落而非遮挡主体 | |
| 4 | 文件过期后(如 7 天)气泡仍在但显示「文件已过期」而非空白 | |
| 5 | 上传失败提供明确原因(网络异常 / 文件太大 / 格式不支持),而非通用错误 | |
| 6 | 会话内「文件」「图片」「链接」Tab 分类汇总,方便查找历史资源 | |
| 9 | 录音播放时只允许一个在播放,点击另一条时停止当前的 | |
---
## 七、隐私 & 安全
| # | 细节描述 | 备注 |
|---|---------|------|
| 1 | 闪图:查看闪图时禁止录屏、禁止截图 | |
---
## 八、通用交互细节
| # | 细节描述 | 备注 |
|---|---------|------|
| 1 | 网络断开时顶部 Banner 实时提示,恢复后自动消失并触发消息补拉 | |
| 2 | 下拉刷新有阻尼感和 loading 状态,刷新完成后 Toast 提示「已是最新」 | |
| 3 | 返回上一级时,列表滚动位置记忆(不跳回顶部) | |
| 6 | 权限请求(相机 / 麦克风 / 通讯录)首次在功能触发时请求,拒绝后提示如何去设置中开启 | ⚠️ 易漏 |
| 7 | 版本更新提示:强制更新 block 全部操作,非强制可忽略,不在每次启动都弹 | |
| 8 | 深色 / 浅色主题跟随系统,切换时过渡平滑(短暂 fade 而非瞬变) | |
| 9 | 所有 Destructive 操作按钮(删除 / 解散 / 注销)用红色,且放在弹窗底部而非顶部 | |
---
## 重点规律总结
### 互斥状态管理
左滑展开、弹窗、播放中的音频、键盘——同一时间只能有一个处于激活态。AI 写出来往往各模块独立管理状态,缺少全局协调层。
### 操作的前置收起
任何「进入下一层」的动作(跳转、弹窗、菜单)都要先把当前展开的 UI 复位,否则返回后 UI 状态错乱。
### 删除/清除类操作的三要素
二次确认弹窗 + 红色按钮在底部 + 明确说明影响范围(仅本地 or 双端同步)。
### 角标与已读状态的双向同步
进入会话清零、多设备同步,前端需与后端配合验证。
---
*共 8 大模块 · 82 个细节 · 标注 ⚠️ 易漏 的为 AI 最容易遗漏项*