代理说明
用户¶
/*!
用户信息提供者
@discussion SDK需要通过您实现的用户信息提供者,获取用户信息并显示。
*/
@property(nonatomic, weak) id<RCIMUserInfoDataSource> userInfoDataSource;
/*!
用户信息提供者
@discussion SDK需要通过您实现的用户信息提供者,获取用户信息并显示。
*/
@protocol RCIMUserInfoDataSource <NSObject>
参数 | 类型 | 说明 |
---|---|---|
userId | NSString | 用户ID |
completion | void | 获取用户信息完成之后需要执行的Block [userInfo : 该用户ID对应的用户信息] |
/*!
获取用户信息
@discussion SDK通过此方法获取用户信息并显示,请在completion中返回该用户ID对应的用户信息。
在您设置了用户信息提供者之后,SDK在需要显示用户信息的时候,会调用此方法,向您请求用户信息用于显示。
*/
- (void)getUserInfoWithUserId:(NSString *)userId
completion:(void (^)(RCUserInfo *userInfo))completion;
代码示例:
//设置代理
[RCIM sharedRCIM].userInfoDataSource = self;
//返回用户信息
- (void)getUserInfoWithUserId:(NSString *)userId completion:(void (^)(RCUserInfo *))completion {
//此处可参考sealtalk代码 从 App Server 获取对应的用户信息
RCUserInfo *user = [RCUserInfo new];
user.userId = userId;
user.portraitUri = @"头像地址";
user.name = @"名称";
completion(user);
}
群组¶
/*!
群组信息提供者
@discussion SDK需要通过您实现的群组信息提供者,获取群组信息并显示。
*/
@property(nonatomic, weak) id<RCIMGroupInfoDataSource> groupInfoDataSource;
/*!
群组信息提供者
@discussion SDK需要通过您实现的群组信息提供者,获取群组信息并显示。
*/
@protocol RCIMGroupInfoDataSource <NSObject>
参数 | 类型 | 说明 |
---|---|---|
groupId | 群组ID | |
completion | 获取群组信息完成之后需要执行的Block [groupInfo : 该群组ID对应的群组信息] |
/*!
获取群组信息
@discussion SDK通过此方法获取群组信息并显示,请在completion的block中返回该用户ID对应的群组信息。
在您设置了群组信息提供者之后,SDK在需要显示群组信息的时候,会调用此方法,向您请求群组信息用于显示。
*/
- (void)getGroupInfoWithGroupId:(NSString *)groupId
completion:(void (^)(RCGroup *groupInfo))completion;
代码示例:
//设置代理
[RCIM sharedRCIM].groupInfoDataSource = self;
//返回用户信息
- (void)getGroupInfoWithGroupId:(NSString *)groupId completion:(void (^)(RCGroup *))completion {
if ([groupId length] == 0)
return;
//开发者调自己的服务器接口根据 userID 异步请求数据
[RCDHTTPTOOL getGroupByID:groupId
successCompletion:^(RCDGroupInfo *group) {
completion(group);
}];
}
群名片¶
/*!
群名片信息提供者
@discussion 如果您使用了群名片功能,SDK需要通过您实现的群名片信息提供者,获取用户在群组中的名片信息并显示。
*/
@property(nonatomic, weak) id<RCIMGroupUserInfoDataSource> groupUserInfoDataSource;
/*!
群名片信息提供者
@discussion 如果您使用了群名片功能,SDK需要通过您实现的群名片信息提供者,获取用户在群组中的名片信息并显示。
*/
@protocol RCIMGroupUserInfoDataSource <NSObject>
参数 | 类型 | 说明 |
---|---|---|
userId | NSString | 用户ID |
groupId | NSString | 群组ID |
completion | void | 获取群名片信息完成之后需要执行的Block [userInfo:该用户ID在群组中对应的群名片信息] |
/*!
获取用户在群组中的群名片信息
@param userId 用户ID
@param groupId 群组ID
@param completion 获取群名片信息完成之后需要执行的Block [userInfo:该用户ID在群组中对应的群名片信息]
@discussion 如果您使用了群名片功能,SDK需要通过您实现的群名片信息提供者,获取用户在群组中的名片信息并显示。
*/
- (void)getUserInfoWithUserId:(NSString *)userId
inGroup:(NSString *)groupId
completion:(void (^)(RCUserInfo *userInfo))completion;
代码示例:
//设置代理
[RCIM sharedRCIM].groupUserInfoDataSource = self;
//返回用户信息
- (void)getUserInfoWithUserId:(NSString *)userId
inGroup:(NSString *)groupId
completion:(void (^)(RCUserInfo *userInfo))completion {
//在这里查询该group内的群名片信息,如果能查到,调用completion返回。如果查询不到也一定要调用completion(nil)
if ([groupId isEqualToString:@"22"] && [userId isEqualToString:@"30806"]) {
completion([[RCUserInfo alloc] initWithUserId:@"30806" name:@"我在22群中的名片" portrait:nil]);
} else {
completion(nil);
}
}