RCIM Class Reference

Inherits from NSObject
Declared in RCIM.h

Overview

融云IMKit核心类

您需要通过sharedRCIM方法,获取单例对象


获取融云界面组件IMKit的核心类单例

+ sharedRCIM

获取融云界面组件IMKit的核心类单例

+ (instancetype)sharedRCIM

Return Value

融云界面组件IMKit的核心类单例

Discussion

获取融云界面组件IMKit的核心类单例

您可以通过此方法,获取IMKit的单例,访问对象中的属性和方法。

Declared In

RCIM.h


初始化融云SDK

– initWithAppKey:

初始化融云SDK

- (void)initWithAppKey:(NSString *)appKey

Parameters

appKey

从融云开发者平台创建应用后获取到的App Key

Discussion

初始化融云SDK

您在使用融云SDK所有功能(包括显示SDK中或者继承于SDK的View)之前,您必须先调用此方法初始化SDK。 在App整个生命周期中,您只需要执行一次初始化。

Warning: 如果您使用IMKit,请使用此方法初始化SDK; 如果您使用IMLib,请使用RCIMClient中的同名方法初始化,而不要使用此方法。

Declared In

RCIM.h


与融云服务器建立连接

– connectWithToken:success:error:tokenIncorrect:

与融云服务器建立连接

- (void)connectWithToken:(NSString *)token success:(void ( ^ ) ( NSString *userId ))successBlock error:(void ( ^ ) ( RCConnectErrorCode status ))errorBlock tokenIncorrect:(void ( ^ ) ( ))tokenIncorrectBlock

Parameters

token

从您服务器端获取的token(用户身份令牌)

successBlock

连接建立成功的回调 [userId:当前连接成功所用的用户ID

errorBlock

连接建立失败的回调 [status:连接失败的错误码]

tokenIncorrectBlock

token错误或者过期的回调

Discussion

与融云服务器建立连接

在App整个生命周期,您只需要调用一次此方法与融云服务器建立连接。 之后无论是网络出现异常或者App有前后台的切换等,SDK都会负责自动重连。 除非您已经手动将连接断开,否则您不需要自己再手动重连。

tokenIncorrectBlock有两种情况: 一是token错误,请您检查客户端初始化使用的AppKey和您服务器获取token使用的AppKey是否一致; 二是token过期,是因为您在开发者后台设置了token过期时间,您需要请求您的服务器重新获取token并再次用新的token建立连接。

Warning: 如果您使用IMKit,请使用此方法建立与融云服务器的连接; 如果您使用IMLib,请使用RCIMClient中的同名方法建立与融云服务器的连接,而不要使用此方法。

在tokenIncorrectBlock的情况下,您需要请求您的服务器重新获取token并建立连接,但是注意避免无限循环,以免影响App用户体验。

此方法的回调并非为原调用线程,您如果需要进行UI操作,请注意切换到主线程。

Declared In

RCIM.h


断开与融云服务器的连接

– disconnect:

断开与融云服务器的连接

- (void)disconnect:(BOOL)isReceivePush

Parameters

isReceivePush

App在断开连接之后,是否还接收远程推送

Discussion

断开与融云服务器的连接

因为SDK在前后台切换或者网络出现异常都会自动重连,会保证连接的可靠性。 所以除非您的App逻辑需要登出,否则一般不需要调用此方法进行手动断开。

Warning: 如果您使用IMKit,请使用此方法断开与融云服务器的连接; 如果您使用IMLib,请使用RCIMClient中的同名方法断开与融云服务器的连接,而不要使用此方法。

isReceivePush指断开与融云服务器的连接之后,是否还接收远程推送。 [[RCIM sharedRCIM] disconnect:YES]与[[RCIM sharedRCIM] disconnect]完全一致; [[RCIM sharedRCIM] disconnect:NO]与[[RCIM sharedRCIM] logout]完全一致。 您只需要按照您的需求,使用disconnect:与disconnect以及logout三个接口其中一个即可。

Declared In

RCIM.h


断开与融云服务器的连接,但仍然接收远程推送

– disconnect

断开与融云服务器的连接,但仍然接收远程推送

- (void)disconnect

Discussion

断开与融云服务器的连接,但仍然接收远程推送

因为SDK在前后台切换或者网络出现异常都会自动重连,会保证连接的可靠性。 所以除非您的App逻辑需要登出,否则一般不需要调用此方法进行手动断开。

Warning: 如果您使用IMKit,请使用此方法断开与融云服务器的连接; 如果您使用IMLib,请使用RCIMClient中的同名方法断开与融云服务器的连接,而不要使用此方法。

[[RCIM sharedRCIM] disconnect:YES]与[[RCIM sharedRCIM] disconnect]完全一致; [[RCIM sharedRCIM] disconnect:NO]与[[RCIM sharedRCIM] logout]完全一致。 您只需要按照您的需求,使用disconnect:与disconnect以及logout三个接口其中一个即可。

Declared In

RCIM.h


断开与融云服务器的连接,并不再接收远程推送

– logout

断开与融云服务器的连接,并不再接收远程推送

- (void)logout

Discussion

断开与融云服务器的连接,并不再接收远程推送

因为SDK在前后台切换或者网络出现异常都会自动重连,会保证连接的可靠性。 所以除非您的App逻辑需要登出,否则一般不需要调用此方法进行手动断开。

Warning: 如果您使用IMKit,请使用此方法断开与融云服务器的连接; 如果您使用IMLib,请使用RCIMClient中的同名方法断开与融云服务器的连接,而不要使用此方法。

[[RCIM sharedRCIM] disconnect:YES]与[[RCIM sharedRCIM] disconnect]完全一致; [[RCIM sharedRCIM] disconnect:NO]与[[RCIM sharedRCIM] logout]完全一致。 您只需要按照您的需求,使用disconnect:与disconnect以及logout三个接口其中一个即可。

Declared In

RCIM.h


IMKit连接状态的监听器

  connectionStatusDelegate

IMKit连接状态的监听器

@property (nonatomic, weak) id<RCIMConnectionStatusDelegate> connectionStatusDelegate

Discussion

IMKit连接状态的监听器

Warning: 如果您使用IMKit,可以设置并实现此Delegate监听消息接收; 如果您使用IMLib,请使用RCIMClient中的RCIMClientReceiveMessageDelegate监听消息接收,而不要使用此方法。

Declared In

RCIM.h


获取当前SDK的连接状态

– getConnectionStatus

获取当前SDK的连接状态

- (RCConnectionStatus)getConnectionStatus

Return Value

当前SDK的连接状态

Discussion

获取当前SDK的连接状态

Declared In

RCIM.h


注册自定义的消息类型

– registerMessageType:

注册自定义的消息类型

- (void)registerMessageType:(Class)messageClass

Parameters

messageClass

自定义消息的类,该自定义消息需要继承于RCMessageContent

Discussion

注册自定义的消息类型

如果您需要自定义消息,必须调用此方法注册该自定义消息的消息类型,否则SDK将无法识别和解析该类型消息。

Warning: 如果您使用IMKit,请使用此方法注册自定义的消息类型; 如果您使用IMLib,请使用RCIMClient中的同名方法注册自定义的消息类型,而不要使用此方法。

Declared In

RCIM.h


发送消息(除图片消息、文件消息外的所有消息),会自动更新UI

– sendMessage:targetId:content:pushContent:pushData:success:error:

发送消息(除图片消息、文件消息外的所有消息),会自动更新UI

- (RCMessage *)sendMessage:(RCConversationType)conversationType targetId:(NSString *)targetId content:(RCMessageContent *)content pushContent:(NSString *)pushContent pushData:(NSString *)pushData success:(void ( ^ ) ( long messageId ))successBlock error:(void ( ^ ) ( RCErrorCode nErrorCode , long messageId ))errorBlock

Parameters

conversationType

发送消息的会话类型

targetId

发送消息的目标会话ID

content

消息的内容

pushContent

接收方离线时需要显示的远程推送内容

pushData

接收方离线时需要在远程推送中携带的非显示数据

successBlock

消息发送成功的回调 [messageId:消息的ID]

errorBlock

消息发送失败的回调 [nErrorCode:发送失败的错误码, messageId:消息的ID]

Return Value

发送的消息实体

Discussion

发送消息(除图片消息、文件消息外的所有消息),会自动更新UI

当接收方离线并允许远程推送时,会收到远程推送。 远程推送中包含两部分内容,一是pushContent,用于显示;二是pushData,用于携带不显示的数据。

SDK内置的消息类型,如果您将pushContent和pushData置为nil,会使用默认的推送格式进行远程推送。 自定义类型的消息,需要您自己设置pushContent和pushData来定义推送内容,否则将不会进行远程推送。

Warning: 如果您使用IMKit,使用此方法发送消息SDK会自动更新UI; 如果您使用IMLib,请使用RCIMClient中的同名方法发送消息,不会自动更新UI。

Declared In

RCIM.h


发送媒体文件消息,会自动更新UI

– sendMediaMessage:targetId:content:pushContent:pushData:progress:success:error:cancel:

发送媒体文件消息,会自动更新UI

- (RCMessage *)sendMediaMessage:(RCConversationType)conversationType targetId:(NSString *)targetId content:(RCMessageContent *)content pushContent:(NSString *)pushContent pushData:(NSString *)pushData progress:(void ( ^ ) ( int progress , long messageId ))progressBlock success:(void ( ^ ) ( long messageId ))successBlock error:(void ( ^ ) ( RCErrorCode errorCode , long messageId ))errorBlock cancel:(void ( ^ ) ( long messageId ))cancelBlock

Parameters

conversationType

发送消息的会话类型

targetId

发送消息的目标会话ID

content

消息的内容

pushContent

接收方离线时需要显示的远程推送内容

pushData

接收方离线时需要在远程推送中携带的非显示数据

progressBlock

消息发送进度更新的回调 [progress:当前的发送进度, 0 <= progress <= 100, messageId:消息的ID]

successBlock

消息发送成功的回调 [messageId:消息的ID]

errorBlock

消息发送失败的回调 [errorCode:发送失败的错误码, messageId:消息的ID]

cancelBlock

用户取消了消息发送的回调 [messageId:消息的ID]

Return Value

发送的消息实体

Discussion

发送媒体文件消息,会自动更新UI

当接收方离线并允许远程推送时,会收到远程推送。 远程推送中包含两部分内容,一是pushContent,用于显示;二是pushData,用于携带不显示的数据。

SDK内置的消息类型,如果您将pushContent和pushData置为nil,会使用默认的推送格式进行远程推送。 自定义类型的消息,需要您自己设置pushContent和pushData来定义推送内容,否则将不会进行远程推送。

Warning: 如果您使用IMKit,使用此方法发送媒体文件消息SDK会自动更新UI; 如果您使用IMLib,请使用RCIMClient中的同名方法发送媒体文件消息,不会自动更新UI。

Declared In

RCIM.h


取消发送中的媒体信息

– cancelSendMediaMessage:

取消发送中的媒体信息

- (BOOL)cancelSendMediaMessage:(long)messageId

Parameters

messageId

媒体消息的messageId

Return Value

YES表示取消成功,NO表示取消失败,即已经发送成功或者消息不存在。

Discussion

取消发送中的媒体信息

Declared In

RCIM.h


下载消息中的媒体文件

– downloadMediaMessage:progress:success:error:cancel:

下载消息中的媒体文件

- (void)downloadMediaMessage:(long)messageId progress:(void ( ^ ) ( int progress ))progressBlock success:(void ( ^ ) ( NSString *mediaPath ))successBlock error:(void ( ^ ) ( RCErrorCode errorCode ))errorBlock cancel:(void ( ^ ) ( ))cancelBlock

Parameters

messageId

消息ID

progressBlock

下载进度更新的回调 [progress:当前的发送进度, 0 <= progress <= 100]

successBlock

下载成功的回调 [mediaPath:下载完成后文件在本地的存储路径]

errorBlock

下载失败的回调 [errorCode:下载失败的错误码]

cancelBlock

下载取消的回调

Discussion

下载消息中的媒体文件

媒体消息仅限于图片消息和文件消息。

Declared In

RCIM.h


取消下载中的媒体信息

– cancelDownloadMediaMessage:

取消下载中的媒体信息

- (BOOL)cancelDownloadMediaMessage:(long)messageId

Parameters

messageId

媒体消息的messageId

Return Value

YES表示取消成功,NO表示取消失败,即已经下载完成或者消息不存在。

Discussion

取消下载中的媒体信息

Declared In

RCIM.h


发送图片消息,会自动更新UI

– sendImageMessage:targetId:content:pushContent:pushData:progress:success:error:

发送图片消息,会自动更新UI

- (RCMessage *)sendImageMessage:(RCConversationType)conversationType targetId:(NSString *)targetId content:(RCMessageContent *)content pushContent:(NSString *)pushContent pushData:(NSString *)pushData progress:(void ( ^ ) ( int progress , long messageId ))progressBlock success:(void ( ^ ) ( long messageId ))successBlock error:(void ( ^ ) ( RCErrorCode errorCode , long messageId ))errorBlock

Parameters

conversationType

发送消息的会话类型

targetId

发送消息的目标会话ID

content

消息的内容

pushContent

接收方离线时需要显示的远程推送内容

pushData

接收方离线时需要在远程推送中携带的非显示数据

progressBlock

消息发送进度更新的回调 [progress:当前的发送进度, 0 <= progress <= 100, messageId:消息的ID]

successBlock

消息发送成功的回调 [messageId:消息的ID]

errorBlock

消息发送失败的回调 [errorCode:发送失败的错误码, messageId:消息的ID]

Return Value

发送的消息实体

Discussion

发送图片消息,会自动更新UI

当接收方离线并允许远程推送时,会收到远程推送。 远程推送中包含两部分内容,一是pushContent,用于显示;二是pushData,用于携带不显示的数据。

SDK内置的消息类型,如果您将pushContent和pushData置为nil,会使用默认的推送格式进行远程推送。 自定义类型的消息,需要您自己设置pushContent和pushData来定义推送内容,否则将不会进行远程推送。

如果您使用IMKit,使用此方法发送图片消息SDK会自动更新UI; 如果您使用IMLib,请使用RCIMClient中的同名方法发送图片消息,不会自动更新UI。

Warning: 已废弃,请勿使用。 升级说明:如果您之前使用了此接口,可以直接替换为sendMediaMessage:targetId:content:pushContent:pushData:success:error:cancel:接口,行为和实现完全一致。

Declared In

RCIM.h


发送定向消息,会自动更新UI

– sendDirectionalMessage:targetId:toUserIdList:content:pushContent:pushData:success:error:

发送定向消息,会自动更新UI

- (RCMessage *)sendDirectionalMessage:(RCConversationType)conversationType targetId:(NSString *)targetId toUserIdList:(NSArray *)userIdList content:(RCMessageContent *)content pushContent:(NSString *)pushContent pushData:(NSString *)pushData success:(void ( ^ ) ( long messageId ))successBlock error:(void ( ^ ) ( RCErrorCode nErrorCode , long messageId ))errorBlock

Parameters

conversationType

发送消息的会话类型

targetId

发送消息的目标会话ID

userIdList

发送给的用户ID列表

content

消息的内容

pushContent

接收方离线时需要显示的远程推送内容

pushData

接收方离线时需要在远程推送中携带的非显示数据

successBlock

消息发送成功的回调 [messageId:消息的ID]

errorBlock

消息发送失败的回调 [errorCode:发送失败的错误码, messageId:消息的ID]

Return Value

发送的消息实体

Discussion

发送定向消息,会自动更新UI

此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 如果您使用IMKit,使用此方法发送定向消息SDK会自动更新UI; 如果您使用IMLib,请使用RCIMClient中的同名方法发送定向消息,不会自动更新UI。

Warning: 此方法目前仅支持群组和讨论组。

Declared In

RCIM.h


IMKit消息接收的监听器

  receiveMessageDelegate

IMKit消息接收的监听器

@property (nonatomic, weak) id<RCIMReceiveMessageDelegate> receiveMessageDelegate

Discussion

IMKit消息接收的监听器

Warning: 如果您使用IMKit,可以设置并实现此Delegate监听消息接收; 如果您使用IMLib,请使用RCIMClient中的RCIMClientReceiveMessageDelegate监听消息接收,而不要使用此方法。

Declared In

RCIM.h


是否关闭所有的本地通知,默认值是NO

  disableMessageNotificaiton

是否关闭所有的本地通知,默认值是NO

@property (nonatomic, assign) BOOL disableMessageNotificaiton

Discussion

是否关闭所有的本地通知,默认值是NO

当App处于后台时,默认会弹出本地通知提示,您可以通过将此属性设置为YES,关闭所有的本地通知。

Declared In

RCIM.h


是否关闭所有的前台消息提示音,默认值是NO

  disableMessageAlertSound

是否关闭所有的前台消息提示音,默认值是NO

@property (nonatomic, assign) BOOL disableMessageAlertSound

Discussion

是否关闭所有的前台消息提示音,默认值是NO

当App处于前台时,默认会播放消息提示音,您可以通过将此属性设置为YES,关闭所有的前台消息提示音。

Declared In

RCIM.h


是否开启发送输入状态,默认值是NO,开启之后在输入消息的时候对方可以看到正在输入的提示(目前只支持单聊)

  enableTypingStatus

是否开启发送输入状态,默认值是NO,开启之后在输入消息的时候对方可以看到正在输入的提示(目前只支持单聊)

@property (nonatomic, assign) BOOL enableTypingStatus

Discussion

是否开启发送输入状态,默认值是NO,开启之后在输入消息的时候对方可以看到正在输入的提示(目前只支持单聊)

Declared In

RCIM.h


是否开启已读回执功能,默认值是NO

  )

是否开启已读回执功能,默认值是NO

@property (nonatomic, assign) BOOL enableReadReceipt __deprecated_msg ( "已废弃,请使用enabledReadReceiptConversationTypeList,设置开启回执的会话类型。" )

Discussion

是否开启已读回执功能,默认值是NO

开启后会在聊天页面消息显示之后会发送已读回执给对方。

Warning: 已废弃,请勿使用。 升级说明:请使用enabledReadReceiptConversationTypeList,设置开启回执的会话类型

Declared In

RCIM.h


开启已读回执功能的会话类型,默认为空

  enabledReadReceiptConversationTypeList

开启已读回执功能的会话类型,默认为空

@property (nonatomic, copy) NSArray *enabledReadReceiptConversationTypeList

Discussion

开启已读回执功能的会话类型,默认为空

这些会话类型的消息在聊天界面显示了之后会发送已读回执。目前仅支持单聊、群聊和讨论组。

Declared In

RCIM.h


是否开启多端同步未读状态的功能,默认值是NO

  enableSyncReadStatus

是否开启多端同步未读状态的功能,默认值是NO

@property (nonatomic, assign) BOOL enableSyncReadStatus

Discussion

是否开启多端同步未读状态的功能,默认值是NO

开启之后,用户在其他端上阅读过的消息,当前客户端会清掉该消息的未读数。目前仅支持单聊、群聊、讨论组。

Declared In

RCIM.h


是否开启消息@提醒功能(只支持群聊和讨论组, App需要实现群成员数据源groupMemberDataSource),默认值是NO。

  enableMessageMentioned

是否开启消息@提醒功能(只支持群聊和讨论组, App需要实现群成员数据源groupMemberDataSource),默认值是NO。

@property (nonatomic, assign) BOOL enableMessageMentioned

Discussion

是否开启消息@提醒功能(只支持群聊和讨论组, App需要实现群成员数据源groupMemberDataSource),默认值是NO。

Declared In

RCIM.h


是否开启消息撤回功能,默认值是NO。

  enableMessageRecall

是否开启消息撤回功能,默认值是NO。

@property (nonatomic, assign) BOOL enableMessageRecall

Discussion

是否开启消息撤回功能,默认值是NO。

Declared In

RCIM.h


消息可撤回的最大时间,单位是秒,默认值是120s。

  maxRecallDuration

消息可撤回的最大时间,单位是秒,默认值是120s。

@property (nonatomic, assign) NSUInteger maxRecallDuration

Discussion

消息可撤回的最大时间,单位是秒,默认值是120s。

Declared In

RCIM.h


是否在聊天界面和会话列表界面显示未注册的消息类型,默认值是NO

  showUnkownMessage

是否在聊天界面和会话列表界面显示未注册的消息类型,默认值是NO

@property (nonatomic, assign) BOOL showUnkownMessage

Discussion

是否在聊天界面和会话列表界面显示未注册的消息类型,默认值是NO

App不断迭代开发,可能会在以后的新版本中不断增加某些自定义类型的消息,但是已经发布的老版本无法识别此类消息。 针对这种情况,可以预先定义好未注册的消息的显示,以提升用户体验(如提示当前版本不支持,引导用户升级版本等)

未注册的消息,可以通过RCConversationViewController中的rcUnkownConversationCollectionView:cellForItemAtIndexPath:和rcUnkownConversationCollectionView:layout:sizeForItemAtIndexPath:方法定制在聊天界面的显示。 未注册的消息,可以通过修改unknown_message_cell_tip字符串资源定制在会话列表界面的显示。

Declared In

RCIM.h


未注册的消息类型是否显示本地通知,默认值是NO

  showUnkownMessageNotificaiton

未注册的消息类型是否显示本地通知,默认值是NO

@property (nonatomic, assign) BOOL showUnkownMessageNotificaiton

Discussion

未注册的消息类型是否显示本地通知,默认值是NO

App不断迭代开发,可能会在以后的新版本中不断增加某些自定义类型的消息,但是已经发布的老版本无法识别此类消息。 针对这种情况,可以预先定义好未注册的消息的显示,以提升用户体验(如提示当前版本不支持,引导用户升级版本等)

未注册的消息,可以通过修改unknown_message_notification_tip字符串资源定制本地通知的显示。

Declared In

RCIM.h


语音消息的最大长度

  maxVoiceDuration

语音消息的最大长度

@property (nonatomic, assign) NSUInteger maxVoiceDuration

Discussion

语音消息的最大长度

默认值是60s,有效值为不小于5秒,不大于60秒

Declared In

RCIM.h


APP是否独占音频

  isExclusiveSoundPlayer

APP是否独占音频

@property (nonatomic, assign) BOOL isExclusiveSoundPlayer

Discussion

APP是否独占音频

默认是NO,录音结束之后会调用AVAudioSession 的 setActive:NO , 恢复其他后台APP播放的声音,如果设置成YES,不会调用 setActive:NO,这样不会中断当前APP播放的声音 (如果当前APP 正在播放音频,这时候如果调用SDK 的录音,可以设置这里为YES)

Declared In

RCIM.h


创建讨论组

– createDiscussion:userIdList:success:error:

创建讨论组

- (void)createDiscussion:(NSString *)name userIdList:(NSArray *)userIdList success:(void ( ^ ) ( RCDiscussion *discussion ))successBlock error:(void ( ^ ) ( RCErrorCode status ))errorBlock

Parameters

name

讨论组名称

userIdList

用户ID的列表

successBlock

创建讨论组成功的回调 [discussion:创建成功返回的讨论组对象]

errorBlock

创建讨论组失败的回调 [status:创建失败的错误码]

Discussion

创建讨论组

Declared In

RCIM.h


讨论组加人,将用户加入讨论组

– addMemberToDiscussion:userIdList:success:error:

讨论组加人,将用户加入讨论组

- (void)addMemberToDiscussion:(NSString *)discussionId userIdList:(NSArray *)userIdList success:(void ( ^ ) ( RCDiscussion *discussion ))successBlock error:(void ( ^ ) ( RCErrorCode status ))errorBlock

Parameters

discussionId

讨论组ID

userIdList

需要加入的用户ID列表

successBlock

讨论组加人成功的回调 [discussion:讨论组加人成功返回的讨论组对象]

errorBlock

讨论组加人失败的回调 [status:讨论组加人失败的错误码]

Discussion

讨论组加人,将用户加入讨论组

设置的讨论组名称长度不能超过40个字符,否则将会截断为前40个字符。

Declared In

RCIM.h


讨论组踢人,将用户移出讨论组

– removeMemberFromDiscussion:userId:success:error:

讨论组踢人,将用户移出讨论组

- (void)removeMemberFromDiscussion:(NSString *)discussionId userId:(NSString *)userId success:(void ( ^ ) ( RCDiscussion *discussion ))successBlock error:(void ( ^ ) ( RCErrorCode status ))errorBlock

Parameters

discussionId

讨论组ID

userId

需要移出的用户ID

successBlock

讨论组踢人成功的回调 [discussion:讨论组踢人成功返回的讨论组对象]

errorBlock

讨论组踢人失败的回调 [status:讨论组踢人失败的错误码]

Discussion

讨论组踢人,将用户移出讨论组

如果当前登录用户不是此讨论组的创建者并且此讨论组没有开放加人权限,则会返回错误。

Warning: 不能使用此接口将自己移除,否则会返回错误。 如果您需要退出该讨论组,可以使用-quitDiscussion:success:error:方法。

Declared In

RCIM.h


退出当前讨论组

– quitDiscussion:success:error:

退出当前讨论组

- (void)quitDiscussion:(NSString *)discussionId success:(void ( ^ ) ( RCDiscussion *discussion ))successBlock error:(void ( ^ ) ( RCErrorCode status ))errorBlock

Parameters

discussionId

讨论组ID

successBlock

退出成功的回调 [discussion:退出成功返回的讨论组对象]

errorBlock

退出失败的回调 [status:退出失败的错误码]

Discussion

退出当前讨论组

Declared In

RCIM.h


获取讨论组的信息

– getDiscussion:success:error:

获取讨论组的信息

- (void)getDiscussion:(NSString *)discussionId success:(void ( ^ ) ( RCDiscussion *discussion ))successBlock error:(void ( ^ ) ( RCErrorCode status ))errorBlock

Parameters

discussionId

需要获取信息的讨论组ID

successBlock

获取讨论组信息成功的回调 [discussion:获取的讨论组信息]

errorBlock

获取讨论组信息失败的回调 [status:获取讨论组信息失败的错误码]

Discussion

获取讨论组的信息

Declared In

RCIM.h


设置讨论组名称

– setDiscussionName:name:success:error:

设置讨论组名称

- (void)setDiscussionName:(NSString *)discussionId name:(NSString *)discussionName success:(void ( ^ ) ( ))successBlock error:(void ( ^ ) ( RCErrorCode status ))errorBlock

Parameters

discussionId

需要设置的讨论组ID

discussionName

需要设置的讨论组名称,discussionName长度<=40

successBlock

设置成功的回调

errorBlock

设置失败的回调 [status:设置失败的错误码]

Discussion

设置讨论组名称

设置的讨论组名称长度不能超过40个字符,否则将会截断为前40个字符。

Declared In

RCIM.h


设置讨论组是否开放加人权限

– setDiscussionInviteStatus:isOpen:success:error:

设置讨论组是否开放加人权限

- (void)setDiscussionInviteStatus:(NSString *)discussionId isOpen:(BOOL)isOpen success:(void ( ^ ) ( ))successBlock error:(void ( ^ ) ( RCErrorCode status ))errorBlock

Parameters

discussionId

论组ID

isOpen

是否开放加人权限

successBlock

设置成功的回调

errorBlock

设置失败的回调[status:设置失败的错误码]

Discussion

设置讨论组是否开放加人权限

讨论组默认开放加人权限,即所有成员都可以加人。 如果关闭加人权限之后,只有讨论组的创建者有加人权限。

Declared In

RCIM.h


当前登录的用户的用户信息

  currentUserInfo

当前登录的用户的用户信息

@property (nonatomic, strong) RCUserInfo *currentUserInfo

Discussion

当前登录的用户的用户信息

与融云服务器建立连接之后,应该设置当前用户的用户信息,用于SDK显示和发送。

Warning: 如果传入的用户信息中的用户ID与当前登录的用户ID不匹配,则将会忽略。

Declared In

RCIM.h


是否将用户信息和群组信息在本地持久化存储,默认值为NO

  enablePersistentUserInfoCache

是否将用户信息和群组信息在本地持久化存储,默认值为NO

@property (nonatomic, assign) BOOL enablePersistentUserInfoCache

Discussion

是否将用户信息和群组信息在本地持久化存储,默认值为NO

如果设置为NO,则SDK在需要显示用户信息时,会调用用户信息提供者获取用户信息并缓存到Cache,此Cache在App生命周期结束时会被移除,下次启动时会再次通过用户信息提供者获取信息。 如果设置为YES,则会将获取到的用户信息持久化存储在本地,App下次启动时Cache会仍然有效。

Declared In

RCIM.h


是否在发送的所有消息中携带当前登录的用户信息,默认值为NO

  enableMessageAttachUserInfo

是否在发送的所有消息中携带当前登录的用户信息,默认值为NO

@property (nonatomic, assign) BOOL enableMessageAttachUserInfo

Discussion

是否在发送的所有消息中携带当前登录的用户信息,默认值为NO

如果设置为YES,则会在每一条发送的消息中携带当前登录用户的用户信息。 收到一条携带了用户信息的消息,SDK会将其信息加入用户信息的cache中并显示; 若消息中不携带用户信息,则仍然会通过用户信息提供者获取用户信息进行显示。

Warning: 需要先设置当前登录用户的用户信息,参考RCIM的currentUserInfo。

Declared In

RCIM.h


用户信息提供者

  userInfoDataSource

用户信息提供者

@property (nonatomic, weak) id<RCIMUserInfoDataSource> userInfoDataSource

Discussion

用户信息提供者

SDK需要通过您实现的用户信息提供者,获取用户信息并显示。

Declared In

RCIM.h


更新SDK中的用户信息缓存

– refreshUserInfoCache:withUserId:

更新SDK中的用户信息缓存

- (void)refreshUserInfoCache:(RCUserInfo *)userInfo withUserId:(NSString *)userId

Parameters

userInfo

需要更新的用户信息

userId

需要更新的用户ID

Discussion

更新SDK中的用户信息缓存

使用此方法,可以更新SDK缓存的用户信息。 但是处于性能和使用场景权衡,SDK不会在当前View立即自动刷新(会在切换到其他View的时候再刷新该用户的显示信息)。 如果您想立即刷新,您可以在会话列表或者聊天界面reload强制刷新。

Declared In

RCIM.h


获取SDK中缓存的用户信息

– getUserInfoCache:

获取SDK中缓存的用户信息

- (RCUserInfo *)getUserInfoCache:(NSString *)userId

Parameters

userId

用户ID

Return Value

SDK中缓存的用户信息

Discussion

获取SDK中缓存的用户信息

Declared In

RCIM.h


清空SDK中所有的用户信息缓存

– clearUserInfoCache

清空SDK中所有的用户信息缓存

- (void)clearUserInfoCache

Discussion

清空SDK中所有的用户信息缓存

使用此方法,会清空SDK中所有的用户信息缓存。 但是处于性能和使用场景权衡,SDK不会在当前View立即自动刷新(会在切换到其他View的时候再刷新所显示的用户信息)。 如果您想立即刷新,您可以在会话列表或者聊天界面reload强制刷新。

Declared In

RCIM.h


群组信息提供者

  groupInfoDataSource

群组信息提供者

@property (nonatomic, weak) id<RCIMGroupInfoDataSource> groupInfoDataSource

Discussion

群组信息提供者

SDK需要通过您实现的群组信息提供者,获取群组信息并显示。

Declared In

RCIM.h


更新SDK中的群组信息缓存

– refreshGroupInfoCache:withGroupId:

更新SDK中的群组信息缓存

- (void)refreshGroupInfoCache:(RCGroup *)groupInfo withGroupId:(NSString *)groupId

Parameters

groupInfo

需要更新的群组信息

groupId

需要更新的群组ID

Discussion

更新SDK中的群组信息缓存

使用此方法,可以更新SDK缓存的群组信息。 但是处于性能和使用场景权衡,SDK不会在当前View立即自动刷新(会在切换到其他View的时候再刷新该群组的显示信息)。 如果您想立即刷新,您可以在会话列表或者聊天界面reload强制刷新。

Declared In

RCIM.h


获取SDK中缓存的群组信息

– getGroupInfoCache:

获取SDK中缓存的群组信息

- (RCGroup *)getGroupInfoCache:(NSString *)groupId

Parameters

groupId

群组ID

Return Value

SDK中缓存的群组信息

Discussion

获取SDK中缓存的群组信息

Declared In

RCIM.h


清空SDK中所有的群组信息缓存

– clearGroupInfoCache

清空SDK中所有的群组信息缓存

- (void)clearGroupInfoCache

Discussion

清空SDK中所有的群组信息缓存

使用此方法,会清空SDK中所有的群组信息缓存。 但是处于性能和使用场景权衡,SDK不会在当前View立即自动刷新(会在切换到其他View的时候再刷新所显示的群组信息)。 如果您想立即刷新,您可以在会话列表或者聊天界面reload强制刷新。

Declared In

RCIM.h


群名片信息提供者

  groupUserInfoDataSource

群名片信息提供者

@property (nonatomic, weak) id<RCIMGroupUserInfoDataSource> groupUserInfoDataSource

Discussion

群名片信息提供者

如果您使用了群名片功能,SDK需要通过您实现的群名片信息提供者,获取用户在群组中的名片信息并显示。

Declared In

RCIM.h


获取SDK中缓存的群名片信息

– getGroupUserInfoCache:withGroupId:

获取SDK中缓存的群名片信息

- (RCUserInfo *)getGroupUserInfoCache:(NSString *)userId withGroupId:(NSString *)groupId

Parameters

userId

用户ID

groupId

群组ID

Return Value

群名片信息

Discussion

获取SDK中缓存的群名片信息

Declared In

RCIM.h


更新SDK中的群名片信息缓存

– refreshGroupUserInfoCache:withUserId:withGroupId:

更新SDK中的群名片信息缓存

- (void)refreshGroupUserInfoCache:(RCUserInfo *)userInfo withUserId:(NSString *)userId withGroupId:(NSString *)groupId

Parameters

userInfo

需要更新的用户信息

userId

需要更新的用户ID

groupId

需要更新群名片信息的群组ID

Discussion

更新SDK中的群名片信息缓存

使用此方法,可以更新SDK缓存的群名片信息。 但是处于性能和使用场景权衡,SDK不会在当前View立即自动刷新(会在切换到其他View的时候再刷新该群名片的显示信息)。 如果您想立即刷新,您可以在会话列表或者聊天界面reload强制刷新。

Declared In

RCIM.h


清空SDK中所有的群名片信息缓存

– clearGroupUserInfoCache

清空SDK中所有的群名片信息缓存

- (void)clearGroupUserInfoCache

Discussion

清空SDK中所有的群名片信息缓存

使用此方法,会清空SDK中所有的群名片信息缓存。 但是处于性能和使用场景权衡,SDK不会在当前View立即自动刷新(会在切换到其他View的时候再刷新所显示的群名片信息)。 如果您想立即刷新,您可以在会话列表或者聊天界面reload强制刷新。

Declared In

RCIM.h


群成员信息提供者

  groupMemberDataSource

群成员信息提供者

@property (nonatomic, weak) id<RCIMGroupMemberDataSource> groupMemberDataSource

Discussion

群成员信息提供者

如果您使用了@功能,SDK需要通过您实现的群用户成员提供者,获取群组中的用户列表。

Declared In

RCIM.h


SDK中全局的导航按钮字体颜色

  globalNavigationBarTintColor

SDK中全局的导航按钮字体颜色

@property (nonatomic, strong) UIColor *globalNavigationBarTintColor

Discussion

SDK中全局的导航按钮字体颜色

默认值为[UIColor whiteColor]

Declared In

RCIM.h


SDK会话列表界面中显示的头像形状,矩形或者圆形

  globalConversationAvatarStyle

SDK会话列表界面中显示的头像形状,矩形或者圆形

@property (nonatomic) RCUserAvatarStyle globalConversationAvatarStyle

Discussion

SDK会话列表界面中显示的头像形状,矩形或者圆形

默认值为矩形,即RC_USER_AVATAR_RECTANGLE

Declared In

RCIM.h


SDK会话列表界面中显示的头像大小,高度必须大于或者等于36

  globalConversationPortraitSize

SDK会话列表界面中显示的头像大小,高度必须大于或者等于36

@property (nonatomic) CGSize globalConversationPortraitSize

Discussion

SDK会话列表界面中显示的头像大小,高度必须大于或者等于36

默认值为46*46

Declared In

RCIM.h


SDK聊天界面中显示的头像形状,矩形或者圆形

  globalMessageAvatarStyle

SDK聊天界面中显示的头像形状,矩形或者圆形

@property (nonatomic) RCUserAvatarStyle globalMessageAvatarStyle

Discussion

SDK聊天界面中显示的头像形状,矩形或者圆形

默认值为矩形,即RC_USER_AVATAR_RECTANGLE

Declared In

RCIM.h


SDK聊天界面中显示的头像大小

  globalMessagePortraitSize

SDK聊天界面中显示的头像大小

@property (nonatomic) CGSize globalMessagePortraitSize

Discussion

SDK聊天界面中显示的头像大小

默认值为40*40

Declared In

RCIM.h


SDK会话列表界面和聊天界面的头像的圆角曲率半径

  portraitImageViewCornerRadius

SDK会话列表界面和聊天界面的头像的圆角曲率半径

@property (nonatomic) CGFloat portraitImageViewCornerRadius

Discussion

SDK会话列表界面和聊天界面的头像的圆角曲率半径

默认值为4,只有当头像形状设置为矩形时才会生效。 参考RCIM的globalConversationAvatarStyle和globalMessageAvatarStyle。

Declared In

RCIM.h


设置Extension Module的URL scheme。

– setScheme:forExtensionModule:

设置Extension Module的URL scheme。

- (void)setScheme:(NSString *)scheme forExtensionModule:(NSString *)moduleName

Parameters

scheme

URL scheme

moduleName

Extension module name

Discussion

设置Extension Module的URL scheme。

有些第三方扩展(比如红包)需要打开其他应用(比如使用支付宝进行支付),然后等待返回结果。因此首先要为第三方扩展设置一个URL scheme并加入到info.plist中,然后再告诉该扩展模块scheme。

Declared In

RCIM.h


第三方扩展处理openUrl

– openExtensionModuleUrl:

第三方扩展处理openUrl

- (BOOL)openExtensionModuleUrl:(NSURL *)url

Parameters

url

url

Return Value

YES处理,NO未处理。

Discussion

第三方扩展处理openUrl

Declared In

RCIM.h