用户信息
要在Flutter IMKit的UI界面上展示用户头像、昵称等信息,需要应用层(App)主动向IMKit SDK提供用户信息。
在Flutter IMKit中,使用CustomInfoProvider函数类型来提供用户、群组和会话的信息。应用需要实现此函数,并通过EngineProvider设置,用于在UI上展示相关信息。
用户信息提供流程
用户信息、群组信息流程完全一致,此处以用户信息为例:
- IMKit在显示消息或会话时,会在界面上展示用户信息,此时IMKit检查是否有相应的用户信息
- 如果有用户信息,IMKit会正常展示头像和名称
- 如果没有用户信息,IMKit会调用开发者提供的
CustomInfoProvider函数 - App从本地数据库或远程服务器获取用户信息
- 服务器返回用户信息给App
- App将用户信息返回给IMKit
- IMKit使用返回的信息更新UI界面
用户信息数据结构
在Flutter IMKit中,用户信息使用RCKChatProfileInfo类表示:
Dart
class RCKChatProfileInfo {
final String id; // 用户或群组ID
final String name; // 名称
final String avatar; // 头像URL
final bool isGroup; // 是否为群组
final String extraInfo; // 额外信息
// 构造函数
RCKChatProfileInfo({
required this.id,
required this.name,
required this.avatar,
this.isGroup = false,
this.extraInfo = '',
});
}
CustomInfoProvider是一个函数类型,定义如下:
Dart
typedef CustomInfoProvider = Future<RCKChatProfileInfo> Function(
{RCIMIWMessage? message,
RCIMIWConversation? conversation});