用户信息
imkit-store 提供了一套完整的 hooks 系统(用于自定义数据获取逻辑),允许开发者自定义用户信息、群组信息等数据的获取方式。这些 hooks 在初始化 imkit-store 时通过 IRCStoreInitOpts
配置对象传入,详见下方参数说明。
hooks 列表
Hook 名称 | 描述 | 参数 | 返回值类型 |
---|---|---|---|
reqUserProfiles | 批量获取用户信息 | string[] | Promise<IUserProfile[]> |
reqGroupProfiles | 批量获取群组信息 | string[] | Promise<IGroupProfile[]> |
reqSystemProfiles | 批量获取系统会话信息 | string[] | Promise<ISystemProfile[]> |
reqGroupMembers | 获取群组成员列表信息 | string | Promise<IGroupMemberProfile[]> |
使用示例
typescript
const store = RCKitStoreInstaller({
hooks: {
// 批量获取用户信息
reqUserProfiles: (userIds: string[]) => {
return new Promise((resolve) => {
// 注意:以下是 mock 数据,实际项目中需要替换为真实的接口请求
const mockUsers = userIds.map(id => ({
id,
name: '用户' + id,
portraitUri: 'https://example.com/avatar.png'
}));
resolve(mockUsers);
});
},
// 批量获取群组信息
reqGroupProfiles: (groupIds: string[]) => {
return new Promise((resolve) => {
// 注意:以下是 mock 数据,实际项目中需要替换为真实的接口请求
const mockGroups = groupIds.map(id => ({
id,
name: '群组' + id,
portraitUri: 'https://example.com/group-avatar.png',
memberCount: Math.floor(Math.random() * 100)
}));
resolve(mockGroups);
});
},
// 批量获取系统会话信息
reqSystemProfiles: (targetIds: string[]) => {
return new Promise((resolve) => {
// 注意:以下是 mock 数据,实际项目中需要替换为真实的接口请求
const mockProfiles = targetIds.map(id => ({
id,
name: '系统消息' + id,
portraitUri: 'https://example.com/system-avatar.png'
}));
resolve(mockProfiles);
});
},
// 获取群组成员列表信息
reqGroupMembers: (groupId: string) => {
return new Promise((resolve) => {
// 注意:以下是 mock 数据,实际项目中需要替换为真实的接口请求
const mockMembers = Array.from({ length: 10 }, (_, i) => ({
groupNickname: `群昵称_${groupId}`,
user: {
id: 'member_' + i,
nickname: '成员' + i,
portraitUri: 'https://example.com/member-avatar.png',
}
}));
resolve(mockMembers);
});
}
}
});
注意事项
- 所有 hooks 都是可选的,但建议全量实现,如未实现相关 Hook,会话列表和会话界面将无法显示完整的用户/群组信息。如果未实现某个 hook,相关功能将走默认数据,默认数据格式为
${会话类型前缀}_${目标ID}
(如:P_123 表示单聊用户 123 )。 - 确保 hooks 的实现是异步的,返回 Promise。
- 注意处理网络请求超时的情况。
初始化参数说明
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
logLevel | LogL | 否 | 日志输出等级,默认 LogL.WARN ,有效值为 LogL.DEBUG 、LogL.INFO 、LogL.WARN 、LogL.ERROR |
hooks | IKitServiceHooks | 否 | 业务数据 Hook 模块,用于向 SDK 注入用户信息、群组信息等 |