2.0 KiB
2.0 KiB
后端接口 TODO 清单 - 用户头像加载模块
1. 获取用户头像
文件: ConversationMessagesAdapter.java, ConversationsAdapter.java, FriendsAdapter.java
接口路径: GET /api/users/{userId}/avatar
请求参数: userId (路径参数)
返回数据:
{
"code": 200,
"data": {
"avatarUrl": "string"
}
}
说明:
- 如果消息对象(ChatMessage/ConversationItem/FriendItem)已包含 avatarUrl 字段,直接使用该URL加载头像
- 如果 avatarUrl 为空,则根据 userId 调用此接口获取头像URL
- 建议在后端返回消息时直接包含 avatarUrl,减少额外请求
2. 获取用户在线状态
文件: FriendsAdapter.java
接口路径: GET /api/users/{userId}/status
请求参数: userId (路径参数)
返回数据:
{
"code": 200,
"data": {
"isOnline": "boolean",
"lastActiveTime": "number"
}
}
说明:
- 用于显示好友列表中的在线状态
- 建议使用 WebSocket 实时推送在线状态变化
- 备选方案:轮询获取(每30秒一次)
3. 批量获取用户头像
文件: 多个适配器文件
接口路径: POST /api/users/avatars/batch
请求参数:
{
"userIds": ["string"]
}
返回数据:
{
"code": 200,
"data": {
"userId1": "avatarUrl1",
"userId2": "avatarUrl2"
}
}
说明:
- 用于批量获取多个用户的头像URL
- 减少网络请求次数,提升性能
- 适用于列表页面(消息列表、好友列表等)
头像加载优化建议
1. 缓存策略
- 使用 Glide 的磁盘缓存和内存缓存
- 设置合理的缓存过期时间(如7天)
2. 占位图
- 加载中显示默认头像
- 加载失败显示默认头像
- 根据用户名生成不同颜色的默认头像
3. 图片压缩
- 后端返回不同尺寸的头像URL(缩略图、原图)
- 列表页面使用缩略图,详情页面使用原图
4. 预加载
- 在列表滚动时预加载即将显示的头像
- 使用 Glide 的 preload 功能