RCIM Class Reference

Inherits from NSObject
Declared in RCIM.h

Overview

融云IMKit核心类

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

RCIM 的废弃接口,配置已被移动到 RCKitConfig 类中

Other Methods

+ sharedRCIM

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

+ (instancetype)sharedRCIM

Return Value

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

Discussion

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

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

Declared In

RCIM.h

– 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:dbOpened:success:error:

与融云服务器建立连接

- (void)connectWithToken:(NSString *)token dbOpened:(void ( ^ ) ( RCDBErrorCode code ))dbOpenedBlock success:(void ( ^ ) ( NSString *userId ))successBlock error:(void ( ^ ) ( RCConnectErrorCode errorCode ))errorBlock

Parameters

token

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

dbOpenedBlock

本地消息数据库打开的回调

successBlock

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

errorBlock

连接建立失败的回调,触发该回调代表 SDK 无法继续重连 [errorCode: 连接失败的错误码]

Discussion

与融云服务器建立连接

调用该接口,SDK 会在连接失败之后尝试重连,直到连接成功或者出现 SDK 无法处理的错误(如 token 非法)。 如果您不想一直进行重连,可以使用 connectWithToken:timeLimit:dbOpened:success:error: 接口并设置连接超时时间 timeLimit。

连接成功后,SDK 将接管所有的重连处理。当因为网络原因断线的情况下,SDK 会不停重连直到连接成功为止,不需要您做额外的连接操作。

对于 errorBlock 需要特定关心 tokenIncorrect 的情况: 一是 token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 使用的 AppKey 是否一致; 二是 token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token 并再次用新的 token 建立连接。 在此种情况下,您需要请求您的服务器重新获取 token 并建立连接,但是注意避免无限循环,以免影响 App 用户体验。

Warning: 如果您使用 IMKit,请使用该方法建立与融云服务器的连接。

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

Declared In

RCIM.h

– connectWithToken:timeLimit:dbOpened:success:error:

与融云服务器建立连接

- (void)connectWithToken:(NSString *)token timeLimit:(int)timeLimit dbOpened:(void ( ^ ) ( RCDBErrorCode code ))dbOpenedBlock success:(void ( ^ ) ( NSString *userId ))successBlock error:(void ( ^ ) ( RCConnectErrorCode errorCode ))errorBlock

Parameters

token

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

timeLimit

SDK 连接的超时时间,单位: 秒 timeLimit <= 0,SDK 会一直连接,直到连接成功或者出现 SDK 无法处理的错误(如 token 非法)。 timeLimit > 0,SDK 最多连接 timeLimit 秒,超时时返回 RC_CONNECT_TIMEOUT 错误,并不再重连。

dbOpenedBlock

本地消息数据库打开的回调

successBlock

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

errorBlock

连接建立失败的回调,触发该回调代表 SDK 无法继续重连 [errorCode: 连接失败的错误码]

Discussion

与融云服务器建立连接

调用该接口,SDK 会在 timeLimit 秒内尝试重连,直到出现下面三种情况之一: 第一、连接成功,回调 successBlock(userId)。 第二、超时,回调 errorBlock(RC_CONNECT_TIMEOUT)。 第三、出现 SDK 无法处理的错误,回调 errorBlock(errorCode)(如 token 非法)。

连接成功后,SDK 将接管所有的重连处理。当因为网络原因断线的情况下,SDK 会不停重连直到连接成功为止,不需要您做额外的连接操作。

对于 errorBlock 需要特定关心 tokenIncorrect 的情况: 一是 token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 使用的 AppKey 是否一致; 二是 token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token 并再次用新的 token 建立连接。 在此种情况下,您需要请求您的服务器重新获取 token 并建立连接,但是注意避免无限循环,以免影响 App 用户体验。

Warning: 如果您使用 IMKit,请使用 RCIM 中的同名方法建立与融云服务器的连接。

此方法的回调并非为原调用线程,您如果需要进行 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

  connectionStatusDelegate

IMKit连接状态的监听器

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

Discussion

IMKit连接状态的监听器

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

Declared In

RCIM.h

– 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

  sendMessageDelegate

@property (nonatomic, weak) id<RCIMSendMessageDelegate> sendMessageDelegate

– 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

– sendMessage:pushContent:pushData:successBlock:errorBlock:

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

- (RCMessage *)sendMessage:(RCMessage *)message pushContent:(NSString *)pushContent pushData:(NSString *)pushData successBlock:(void ( ^ ) ( RCMessage *successMessage ))successBlock errorBlock:(void ( ^ ) ( RCErrorCode nErrorCode , RCMessage *errorMessage ))errorBlock

Parameters

message

将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值)

pushContent

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

pushData

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

successBlock

消息发送成功的回调 [successMessage: 消息实体]

errorBlock

消息发送失败的回调 [nErrorCode: 发送失败的错误码, errorMessage:消息实体]

Return Value

发送的消息实体

Discussion

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

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

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

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

@remarks 消息操作

Declared In

RCIM.h

– 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

– sendMediaMessage:pushContent:pushData:progress:successBlock:errorBlock:cancel:

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

- (RCMessage *)sendMediaMessage:(RCMessage *)message pushContent:(NSString *)pushContent pushData:(NSString *)pushData progress:(void ( ^ ) ( int progress , RCMessage *progressMessage ))progressBlock successBlock:(void ( ^ ) ( RCMessage *successMessage ))successBlock errorBlock:(void ( ^ ) ( RCErrorCode nErrorCode , RCMessage *errorMessage ))errorBlock cancel:(void ( ^ ) ( RCMessage *cancelMessage ))cancelBlock

Parameters

message

将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值)

pushContent

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

pushData

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

progressBlock

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

successBlock

消息发送成功的回调 [successMessage:消息实体]

errorBlock

消息发送失败的回调 [nErrorCode:发送失败的错误码, errorMessage:消息实体]

cancelBlock

用户取消了消息发送的回调 [cancelMessage:消息实体]

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 ( ^ ) ( 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

– 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

  receiveMessageDelegate

IMKit消息接收的监听器

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

Discussion

IMKit消息接收的监听器

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

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 ( ^ ) ( 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 ( ^ ) ( 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

  enablePersistentUserInfoCache

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

@property (nonatomic, assign) BOOL enablePersistentUserInfoCache

Discussion

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

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

Declared In

RCIM.h

  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

– 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

– getUserInfoCache:

获取SDK中缓存的用户信息

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

Parameters

userId

用户ID

Return Value

SDK中缓存的用户信息

Discussion

获取SDK中缓存的用户信息

Declared In

RCIM.h

– 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

– 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

– getGroupInfoCache:

获取SDK中缓存的群组信息

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

Parameters

groupId

群组ID

Return Value

SDK中缓存的群组信息

Discussion

获取SDK中缓存的群组信息

Declared In

RCIM.h

– 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

– getGroupUserInfoCache:withGroupId:

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

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

Parameters

userId

用户ID

groupId

群组ID

Return Value

群名片信息

Discussion

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

Declared In

RCIM.h

– 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

– 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

  automaticDownloadHQVoiceMsgEnable

在线时是否自动下载高质量语音消息

@property (nonatomic, assign) BOOL automaticDownloadHQVoiceMsgEnable

Discussion

在线时是否自动下载高质量语音消息

默认为 YES

Declared In

RCIM.h

  publicServiceInfoDataSource

公众号信息提供者

@property (nonatomic, weak) id<RCIMPublicServiceProfileDataSource> publicServiceInfoDataSource

Discussion

公众号信息提供者

SDK需要通过您实现公众号信息提供者,获取公众号信息并显示。

Declared In

RCIM.h

  embeddedWebViewPreferred

点击Cell中的URL时,优先使用WebView还是SFSafariViewController打开。

@property (nonatomic, assign) BOOL embeddedWebViewPreferred

Discussion

点击Cell中的URL时,优先使用WebView还是SFSafariViewController打开。

默认为NO。 如果设置为YES,将使用WebView打开URL链接,则您需要在App的Info.plist的NSAppTransportSecurity中增加NSAllowsArbitraryLoadsInWebContent和NSAllowsArbitraryLoads字段,并在苹果审核的时候提供额外的说明。 如果设置为NO,将优先使用SFSafariViewController,在iOS 8及之前的系统中使用WebView,在审核的时候不需要提供额外说明。 更多内容可以参考:https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW55

Declared In

RCIM.h

– setScheme:forExtensionModule:

设置Extension Module的URL scheme。

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

Parameters

scheme

URL scheme

moduleName

Extension module name

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

Discussion

设置Extension Module的URL scheme。

Declared In

RCIM.h

– openExtensionModuleUrl:

第三方扩展处理openUrl

- (BOOL)openExtensionModuleUrl:(NSURL *)url

Parameters

url

url

Return Value

YES处理,NO未处理。

Discussion

第三方扩展处理openUrl

Declared In

RCIM.h

+ getVersion

获取 SDK 版本号

+ (NSString *)getVersion

Return Value

SDK 版本号

Discussion

获取 SDK 版本号

Declared In

RCIM.h

(null) from Deprecated

  )

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

@property (nonatomic, assign) BOOL disableMessageNotificaiton __deprecated_msg ( "已废弃,请使用 RCKitConfigCenter.message.disableMessageNotificaiton" )

Discussion

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

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

swift 如果调用宏定义 RCKitConfigCenter 报错,替换为 RCKitConfig 的单例构造方法

Declared In

RCIM+Deprecated.h