跳转至

代理说明

用户

/*!
用户信息提供者
@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); 
    }
}