RCConversationViewController Class Reference

Inherits from RCBaseViewController : UIViewController
Conforms to UICollectionViewDataSource
UICollectionViewDelegate
UICollectionViewDelegateFlowLayout
UIGestureRecognizerDelegate
UIScrollViewDelegate
Declared in RCConversationViewController.h

Overview

会话页面类

– initWithConversationType:targetId:

初始化会话页面

- (id)initWithConversationType:(RCConversationType)conversationType targetId:(NSString *)targetId

Parameters

conversationType

会话类型

targetId

目标会话ID

Return Value

会话页面对象

Discussion

初始化会话页面

Declared In

RCConversationViewController.h

  conversationType

当前会话的会话类型

@property (nonatomic) RCConversationType conversationType

Discussion

当前会话的会话类型

Declared In

RCConversationViewController.h

  targetId

目标会话ID

@property (nonatomic, copy) NSString *targetId

Discussion

目标会话ID

Declared In

RCConversationViewController.h

  locatedMessageSentTime

进入页面时定位的消息的发送时间

@property (nonatomic, assign) long long locatedMessageSentTime

Discussion

进入页面时定位的消息的发送时间

用于消息搜索之后点击进入页面等场景

Declared In

RCConversationViewController.h

  conversationDataRepository

聊天内容的消息Cell数据模型的数据源

@property (nonatomic, strong) NSMutableArray *conversationDataRepository

Discussion

聊天内容的消息Cell数据模型的数据源

数据源中存放的元素为消息Cell的数据模型,即RCMessageModel对象。

Warning: 非线程安全,请在主线程操作该属性

Declared In

RCConversationViewController.h

  conversationMessageCollectionView

会话页面的CollectionView

@property (nonatomic, strong) UICollectionView *conversationMessageCollectionView

Discussion

会话页面的CollectionView

Declared In

RCConversationViewController.h

  displayConversationTypeArray

需要统计未读数的会话类型数组(在导航栏的返回按钮中显示)

@property (nonatomic, strong) NSArray *displayConversationTypeArray

Discussion

需要统计未读数的会话类型数组(在导航栏的返回按钮中显示)

此属性表明在导航栏的返回按钮中需要统计显示哪部分的会话类型的未读数。 (需要将RCConversationType转为NSNumber构建Array)

Declared In

RCConversationViewController.h

– notifyUpdateUnreadMessageCount

更新导航栏返回按钮中显示的未读消息数

- (void)notifyUpdateUnreadMessageCount

Discussion

更新导航栏返回按钮中显示的未读消息数

如果您重写此方法,需要注意调用super。

Declared In

RCConversationViewController.h

  enableUnreadMessageIcon

当未读消息数超过 10 条时,进入会话之后,是否在右上角提示上方存在的未读消息数

@property (nonatomic, assign) BOOL enableUnreadMessageIcon

Discussion

当未读消息数超过 10 条时,进入会话之后,是否在右上角提示上方存在的未读消息数

默认值为NO。 开启该提示功能之后,当未读消息数超过 10 条时,进入该会话后,会在右上角提示用户上方存在的未读消息数,用户点击该提醒按钮,会跳转到最开始的未读消息。

Declared In

RCConversationViewController.h

  enableUnreadMentionedIcon

当收到的消息中有 @ 消息时,进入会话之后,是否在右上角提示未读 @ 消息数

@property (nonatomic, assign) BOOL enableUnreadMentionedIcon

Discussion

当收到的消息中有 @ 消息时,进入会话之后,是否在右上角提示未读 @ 消息数

默认值为YES。 开启该提示功能之后,当一个会话收到大量消息时(超过一个屏幕能显示的内容), 进入该会话后,会在右上角提示用户上方存在的未读 @ 消息数,用户点击该提醒按钮,会跳转到最早的未读 @ 消息处,同时未读 @ 消息数量减 1,再次点击,未读 @ 消息数量根据当前屏幕内看到的个数相应减少。

Declared In

RCConversationViewController.h

  unReadMessage

该会话的未读消息数

@property (nonatomic, assign) NSInteger unReadMessage

Discussion

该会话的未读消息数

Declared In

RCConversationViewController.h

  unReadMessageLabel

右上角未读消息数提示的Label

@property (nonatomic, strong) UILabel *unReadMessageLabel

Discussion

右上角未读消息数提示的Label

unReadMessage > 10 右上角会显示未读消息数。

Declared In

RCConversationViewController.h

  unReadButton

右上角未读消息数提示的按钮

@property (nonatomic, strong) UIButton *unReadButton

Discussion

右上角未读消息数提示的按钮

Declared In

RCConversationViewController.h

  unReadMentionedLabel

右上角@消息数提示的Label

@property (nonatomic, strong) UILabel *unReadMentionedLabel

Discussion

右上角@消息数提示的Label

Declared In

RCConversationViewController.h

  unreadRightBottomIcon

@property (nonatomic, strong) UIImageView *unreadRightBottomIcon

  unReadMentionedButton

右上角@消息数提示的按钮

@property (nonatomic, strong) UIButton *unReadMentionedButton

Discussion

右上角@消息数提示的按钮

Declared In

RCConversationViewController.h

  enableNewComingMessageIcon

当前阅读区域的下方收到消息时,是否在会话页面的右下角提示下方存在未读消息

@property (nonatomic, assign) BOOL enableNewComingMessageIcon

Discussion

当前阅读区域的下方收到消息时,是否在会话页面的右下角提示下方存在未读消息

默认值为NO。 开启该提示功能之后,当会话页面滑动到最下方时,此会话中收到消息会自动更新; 当用户停留在上方某个区域阅读时,此会话收到消息时,会在右下角显示未读消息提示,而不会自动滚动到最下方, 用户点击该提醒按钮,会滚动到最下方。

Declared In

RCConversationViewController.h

  unReadNewMessageLabel

右下角未读消息数提示的Label

@property (nonatomic, strong) UILabel *unReadNewMessageLabel

Discussion

右下角未读消息数提示的Label

Declared In

RCConversationViewController.h

  chatSessionInputBarControl

会话页面下方的输入工具栏

@property (nonatomic, strong) RCChatSessionInputBarControl *chatSessionInputBarControl

Discussion

会话页面下方的输入工具栏

Declared In

RCConversationViewController.h

  defaultInputType

输入框的默认输入模式

@property (nonatomic) RCChatSessionInputBarInputType defaultInputType

Discussion

输入框的默认输入模式

默认值为RCChatSessionInputBarInputText,即文本输入模式。 请在[super viewWillAppear:animated]之后调用

Declared In

RCConversationViewController.h

  extensionView

会话扩展显示区域

@property (nonatomic, strong) UIView *extensionView

Discussion

会话扩展显示区域

可以自定义显示会话页面的view。

Declared In

RCConversationViewController.h

  referencingView

输入框上方引用内容显示View

@property (nonatomic, strong) RCReferencingView *referencingView

Discussion

输入框上方引用内容显示View

Declared In

RCConversationViewController.h

  placeholderLabel

输入工具栏占位文本 label,默认为 nil,不显示占位

@property (nonatomic, strong) UILabel *placeholderLabel

Discussion

输入工具栏占位文本 label,默认为 nil,不显示占位

在会话页面的 viewDidLoad 写如下代码即可 self.placeholderLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 180, 20)]; self.placeholderLabel.text = @“测试 Placeholder”; self.placeholderLabel.textColor = [UIColor grayColor];

Declared In

RCConversationViewController.h

– inputTextView:shouldChangeTextInRange:replacementText:

输入框中内容发生变化的回调

- (void)inputTextView:(UITextView *)inputTextView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

Parameters

inputTextView

文本输入框

range

当前操作的范围

text

插入的文本

Discussion

输入框中内容发生变化的回调

Declared In

RCConversationViewController.h

– chatInputBar:shouldChangeFrame:

输入工具栏尺寸(高度)发生变化的回调

- (void)chatInputBar:(RCChatSessionInputBarControl *)chatInputBar shouldChangeFrame:(CGRect)frame

Parameters

chatInputBar

输入工具栏

frame

输入工具栏最终需要显示的Frame

Discussion

输入工具栏尺寸(高度)发生变化的回调

如重写此方法,请先调用父类方法。

Declared In

RCConversationViewController.h

– pluginBoardView:clickedItemWithTag:

扩展功能板的点击回调

- (void)pluginBoardView:(RCPluginBoardView *)pluginBoardView clickedItemWithTag:(NSInteger)tag

Parameters

pluginBoardView

输入扩展功能板View

tag

输入扩展功能(Item)的唯一标示

Discussion

扩展功能板的点击回调

Declared In

RCConversationViewController.h

  displayUserNameInCell

收到的消息是否显示发送者的名字

@property (nonatomic) BOOL displayUserNameInCell

Discussion

收到的消息是否显示发送者的名字

默认值为YES。 您可以针对群聊、聊天室、单聊等不同场景,自己定制是否显示发送方的名字。

Declared In

RCConversationViewController.h

  defaultHistoryMessageCountOfChatRoom

设置进入聊天室需要获取的历史消息数量(仅在当前会话为聊天室时生效)

@property (nonatomic, assign) int defaultHistoryMessageCountOfChatRoom

Discussion

设置进入聊天室需要获取的历史消息数量(仅在当前会话为聊天室时生效)

此属性需要在viewDidLoad之前进行设置。 -1表示不获取任何历史消息,0表示不特殊设置而使用SDK默认的设置(默认为获取10条),0<messageCount<=50为具体获取的消息数量,最大值为30。注:如果是7.x系统获取历史消息数量不要大于30

Declared In

RCConversationViewController.h

  defaultRemoteHistoryMessageCount

设置进入会话页面后下拉刷新从远端获取消息的条数,默认是 10。

@property (nonatomic, assign) int defaultRemoteHistoryMessageCount

Discussion

设置进入会话页面后下拉刷新从远端获取消息的条数,默认是 10。

此属性需要在viewDidLoad之前进行设置。

Declared In

RCConversationViewController.h

  defaultLocalHistoryMessageCount

设置进入会话页面后下拉刷新从本地数据库取的消息的条数,默认是 10。

@property (nonatomic, assign) int defaultLocalHistoryMessageCount

Discussion

设置进入会话页面后下拉刷新从本地数据库取的消息的条数,默认是 10。

此属性需要在viewDidLoad之前进行设置。

Declared In

RCConversationViewController.h

  selectedMessages

已经选择的所有消息

@property (nonatomic, strong, readonly) NSArray<RCMessageModel*> *selectedMessages

Discussion

已经选择的所有消息

只有在 allowsMessageCellSelection 为 YES,才会有有效值

Declared In

RCConversationViewController.h

  allowsMessageCellSelection

会话页面消息是否可编辑选择,如果为 YES,消息 cell 会变为多选样式,如果为 NO,页面恢复初始状态。

@property (nonatomic, assign) BOOL allowsMessageCellSelection

Discussion

会话页面消息是否可编辑选择,如果为 YES,消息 cell 会变为多选样式,如果为 NO,页面恢复初始状态。

Declared In

RCConversationViewController.h

  messageSelectionToolbar

消息编辑选择的状态下页面底部出现的工具视图

@property (nonatomic, strong) UIToolbar *messageSelectionToolbar

Discussion

消息编辑选择的状态下页面底部出现的工具视图

Declared In

RCConversationViewController.h

– alertErrorAndLeft:

提示用户信息并推出当前会话界面

- (void)alertErrorAndLeft:(NSString *)errorInfo

Parameters

errorInfo

错误提示

Discussion

提示用户信息并推出当前会话界面

在聊天室加入失败SDK会调用此接口,提示用户并退出聊天室。如果您需要修改提示或者不退出,可以重写此方法。

Declared In

RCConversationViewController.h

– scrollToBottomAnimated:

滚动到列表最下方

- (void)scrollToBottomAnimated:(BOOL)animated

Parameters

animated

是否开启动画效果

Discussion

滚动到列表最下方

Declared In

RCConversationViewController.h

– leftBarButtonItemPressed:

返回前一个页面的方法

- (void)leftBarButtonItemPressed:(id)sender

Parameters

sender

事件发起者

Discussion

返回前一个页面的方法

其中包含了一些会话页面退出的清理工作,如退出讨论组等。 如果您重写此方法,请注意调用super。

Declared In

RCConversationViewController.h

– sendMessage:pushContent:

发送消息

- (void)sendMessage:(RCMessageContent *)messageContent pushContent:(NSString *)pushContent

Parameters

messageContent

消息的内容

pushContent

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

Discussion

发送消息

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

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

如果您需要设置发送的pushData,可以使用RCIM的发送消息接口。

Declared In

RCConversationViewController.h

– sendMediaMessage:pushContent:appUpload:

发送媒体消息(上传图片或文件到App指定的服务器)

- (void)sendMediaMessage:(RCMessageContent *)messageContent pushContent:(NSString *)pushContent appUpload:(BOOL)appUpload

Parameters

messageContent

消息的内容

pushContent

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

appUpload

是否上传到App指定的服务器

@discussion 此方法用于上传媒体信息到您自己的服务器,此时需要将appUpload设置为YES,并实现uploadMedia:uploadListener:回调。 需要您在该回调中上传媒体信息(图片或文件),并通过uploadListener监听通知SDK同步显示上传进度。

如果appUpload设置为NO,将会和普通媒体消息的发送一致,上传到融云默认的服务器并发送。

Discussion

发送媒体消息(上传图片或文件到App指定的服务器)

Declared In

RCConversationViewController.h

– uploadMedia:uploadListener:

上传媒体信息到App指定的服务器的回调

- (void)uploadMedia:(RCMessage *)message uploadListener:(RCUploadMediaStatusListener *)uploadListener

Parameters

message

媒体消息(图片消息或文件消息)的实体

uploadListener

SDK图片上传进度监听

Discussion

上传媒体信息到App指定的服务器的回调

如果您通过sendMediaMessage:pushContent:appUpload:接口发送媒体消息,则必须实现此回调。 您需要在此回调中通过uploadListener将上传媒体信息的进度和结果通知SDK,SDK会根据这些信息,自动更新UI。

Declared In

RCConversationViewController.h

– cancelUploadMedia:

取消上传媒体消息。

- (void)cancelUploadMedia:(RCMessageModel *)model

Parameters

model

媒体消息(文件消息)的Model

Discussion

取消上传媒体消息。

如果您通过sendMediaMessage:pushContent:appUpload:发送媒体消息(上传媒体内容到App服务器),需要 重写此函数,在此函数中取消掉您的上传,并调用uploadListener的cancelBlock告诉融云SDK该发送已经取消。目前仅支持文件消息的取消

Declared In

RCConversationViewController.h

– resendMessage:

重新发送消息

- (void)resendMessage:(RCMessageContent *)messageContent

Parameters

messageContent

消息的内容

Discussion

重新发送消息

发送消息失败,点击小红点时,会将本地存储的原消息实体删除,回调此接口将消息内容重新发送。 如果您需要重写此接口,请注意调用super。

Declared In

RCConversationViewController.h

– appendAndDisplayMessage:

在会话页面中插入一条消息并展示

- (void)appendAndDisplayMessage:(RCMessage *)message

Parameters

message

消息实体

Discussion

在会话页面中插入一条消息并展示

通过此方法插入一条消息,会将消息实体对应的内容Model插入数据源中,并更新UI。 请注意,这条消息只会在 UI 上插入,并不会存入数据库。 用户调用这个接口插入消息之后,如果退出会话页面再次进入的时候,这条消息将不再显示。

Declared In

RCConversationViewController.h

– deleteMessage:

删除消息并更新UI

- (void)deleteMessage:(RCMessageModel *)model

Parameters

model

消息Cell的数据模型

Discussion

删除消息并更新UI

Declared In

RCConversationViewController.h

– recallMessage:

撤回消息并更新UI

- (void)recallMessage:(long)messageId

Parameters

messageId

被撤回的消息Id

Discussion

撤回消息并更新UI

只有存储并发送成功的消息才可以撤回。

Declared In

RCConversationViewController.h

– willSendMessage:

准备发送消息的回调

- (RCMessageContent *)willSendMessage:(RCMessageContent *)messageContent

Parameters

messageContent

消息内容

Return Value

修改后的消息内容

Discussion

准备发送消息的回调

此回调在消息准备向外发送时会回调,您可以在此回调中对消息内容进行过滤和修改等操作。 如果此回调的返回值不为nil,SDK会对外发送返回的消息内容。

Declared In

RCConversationViewController.h

– didSendMessage:content:

发送消息完成的回调

- (void)didSendMessage:(NSInteger)status content:(RCMessageContent *)messageContent

Parameters

status

发送状态,0表示成功,非0表示失败

messageContent

消息内容

Discussion

发送消息完成的回调

Declared In

RCConversationViewController.h

– didCancelMessage:

取消了消息发送的回调

- (void)didCancelMessage:(RCMessageContent *)messageContent

Parameters

messageContent

消息内容

Discussion

取消了消息发送的回调

Declared In

RCConversationViewController.h

– willAppendAndDisplayMessage:

即将在会话页面插入消息的回调

- (RCMessage *)willAppendAndDisplayMessage:(RCMessage *)message

Parameters

message

消息实体

Return Value

修改后的消息实体

Discussion

即将在会话页面插入消息的回调

此回调在消息准备插入数据源的时候会回调,您可以在此回调中对消息进行过滤和修改操作。 如果此回调的返回值不为nil,SDK会将返回消息实体对应的消息Cell数据模型插入数据源,并在会话页面中显示。

Declared In

RCConversationViewController.h

– willDisplayMessageCell:atIndexPath:

即将显示消息Cell的回调

- (void)willDisplayMessageCell:(RCMessageBaseCell *)cell atIndexPath:(NSIndexPath *)indexPath

Parameters

cell

消息Cell

indexPath

该Cell对应的消息Cell数据模型在数据源中的索引值

Discussion

即将显示消息Cell的回调

您可以在此回调中修改Cell的显示和某些属性。

Declared In

RCConversationViewController.h

– willSelectMessage:

多选模式时,消息将要被选择时的回调

- (BOOL)willSelectMessage:(RCMessageModel *)model

Parameters

model

消息 Cell 的数据模型

Return Value

是否继续执行选择操作,默认是YES

Discussion

多选模式时,消息将要被选择时的回调

Declared In

RCConversationViewController.h

– willCancelSelectMessage:

多选模式时,消息将要被取消选择时的回调

- (BOOL)willCancelSelectMessage:(RCMessageModel *)model

Parameters

model

消息 Cell 的数据模型

Return Value

是否继续执行取消选择操作,默认是YES

Discussion

多选模式时,消息将要被取消选择时的回调

Declared In

RCConversationViewController.h

– registerClass:forMessageClass:

注册自定义消息的Cell

- (void)registerClass:(Class)cellClass forMessageClass:(Class)messageClass

Parameters

cellClass

自定义消息cell的类

messageClass

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

@discussion 你需要在cell中重写RCMessageBaseCell基类的sizeForMessageModel:withCollectionViewWidth:referenceExtraHeight:来计算cell的高度。

Discussion

注册自定义消息的Cell

如果有自定义消息,在会话页面子类 viewDidLoad 方法中需优先注册自定义消息的 cell, 再做其他操作

Declared In

RCConversationViewController.h

– rcUnkownConversationCollectionView:cellForItemAtIndexPath:

未注册消息Cell显示的回调

- (RCMessageBaseCell *)rcUnkownConversationCollectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

Parameters

collectionView

当前CollectionView

indexPath

该Cell对应的消息Cell数据模型在数据源中的索引值

Return Value

未注册消息需要显示的Cell

@discussion 未注册消息的显示主要用于App未雨绸缪的新旧版本兼容,在使用此回调之前,需要将RCIM的showUnkownMessage设置为YES。 比如,您App在新版本迭代中增加了某种自定义消息,当已经发布的旧版本不能识别,开发者可以在旧版本中预先定义好这些不能识别的消息的显示, 如提示当前版本不支持,引导用户升级等。

Discussion

未注册消息Cell显示的回调

Declared In

RCConversationViewController.h

– rcUnkownConversationCollectionView:layout:sizeForItemAtIndexPath:

未注册消息Cell显示的回调

- (CGSize)rcUnkownConversationCollectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath

Parameters

collectionView

当前CollectionView

collectionViewLayout

当前CollectionView Layout

indexPath

该Cell对应的消息Cell数据模型在数据源中的索引值

Return Value

未注册消息Cell需要显示的高度

@discussion 未注册消息的显示主要用于App未雨绸缪的新旧版本兼容,在使用此回调之前,需要将RCIM的showUnkownMessage设置为YES。 比如,您App在新版本迭代中增加了某种自定义消息,当已经发布的旧版本不能识别,开发者可以在旧版本中预先定义好这些不能识别的消息的显示, 如提示当前版本不支持,引导用户升级等。

Discussion

未注册消息Cell显示的回调

Declared In

RCConversationViewController.h

– didTapMessageCell:

点击Cell中的消息内容的回调

- (void)didTapMessageCell:(RCMessageModel *)model

Parameters

model

消息Cell的数据模型

Discussion

点击Cell中的消息内容的回调

SDK在此点击事件中,针对SDK中自带的图片、语音、位置等消息有默认的处理,如查看、播放等。 您在重写此回调时,如果想保留SDK原有的功能,需要注意调用super。

Declared In

RCConversationViewController.h

– didLongTouchMessageCell:inView:

长按Cell中的消息内容的回调

- (void)didLongTouchMessageCell:(RCMessageModel *)model inView:(UIView *)view

Parameters

model

消息Cell的数据模型

view

长按区域的View

Discussion

长按Cell中的消息内容的回调

SDK在此长按事件中,会默认展示菜单。 您在重写此回调时,如果想保留SDK原有的功能,需要注意调用super。

Declared In

RCConversationViewController.h

– getLongTouchMessageCellMenuList:

获取长按Cell中的消息时的菜单

- (NSArray<UIMenuItem*> *)getLongTouchMessageCellMenuList:(RCMessageModel *)model

Parameters

model

消息Cell的数据模型

Discussion

获取长按Cell中的消息时的菜单

SDK在此长按事件中,会展示此方法返回的菜单。 您在重写此回调时,如果想保留SDK原有的功能,需要注意调用super。

Declared In

RCConversationViewController.h

– didTapUrlInMessageCell:model:

点击Cell中URL的回调

- (void)didTapUrlInMessageCell:(NSString *)url model:(RCMessageModel *)model

Parameters

url

点击的URL

model

消息Cell的数据模型

Discussion

点击Cell中URL的回调

Declared In

RCConversationViewController.h

– didTapReedit:

点击撤回消息Cell中重新编辑的回调

- (void)didTapReedit:(RCMessageModel *)model

Parameters

model

消息Cell的数据模型

Discussion

点击撤回消息Cell中重新编辑的回调

点击撤回消息Cell中重新编辑,会调用此回调,不会再触发didTapMessageCell:。

Declared In

RCConversationViewController.h

– didTapReferencedContentView:

点击引用消息中被引用消息内容预览的回调

- (void)didTapReferencedContentView:(RCMessageModel *)model

Parameters

model

引用消息Cell的数据模型

Discussion

点击引用消息中被引用消息内容预览的回调

Declared In

RCConversationViewController.h

– didTapPhoneNumberInMessageCell:model:

点击Cell中电话号码的回调

- (void)didTapPhoneNumberInMessageCell:(NSString *)phoneNumber model:(RCMessageModel *)model

Parameters

phoneNumber

点击的电话号码

model

消息Cell的数据模型

Discussion

点击Cell中电话号码的回调

Declared In

RCConversationViewController.h

– didTapCellPortrait:

点击Cell中头像的回调

- (void)didTapCellPortrait:(NSString *)userId

Parameters

userId

点击头像对应的用户ID

Discussion

点击Cell中头像的回调

Declared In

RCConversationViewController.h

– didLongPressCellPortrait:

长按Cell中头像的回调

- (void)didLongPressCellPortrait:(NSString *)userId

Parameters

userId

头像对应的用户ID

Discussion

长按Cell中头像的回调

Declared In

RCConversationViewController.h

– onBeginRecordEvent

开始录制语音消息的回调

- (void)onBeginRecordEvent

Discussion

开始录制语音消息的回调

Declared In

RCConversationViewController.h

– onEndRecordEvent

结束录制语音消息的回调

- (void)onEndRecordEvent

Discussion

结束录制语音消息的回调

Declared In

RCConversationViewController.h

– onCancelRecordEvent

取消录制语音消息的回调(不会再走 onEndRecordEvent)

- (void)onCancelRecordEvent

Discussion

取消录制语音消息的回调(不会再走 onEndRecordEvent)

Declared In

RCConversationViewController.h

  enableContinuousReadUnreadVoice

是否开启语音消息连续播放

@property (nonatomic, assign) BOOL enableContinuousReadUnreadVoice

Discussion

是否开启语音消息连续播放

如果设置为YES,在点击播放语音消息时,会将下面所有未播放过的语音消息依次播放。

Declared In

RCConversationViewController.h

– presentImagePreviewController:

查看图片消息中的图片

- (void)presentImagePreviewController:(RCMessageModel *)model

Parameters

model

消息Cell的数据模型

Discussion

查看图片消息中的图片

SDK在此方法中会默认调用RCImageSlideController下载并展示图片。

Declared In

RCConversationViewController.h

  enableSaveNewPhotoToLocalSystem

发送新拍照的图片完成之后,是否将图片在本地另行存储。

@property (nonatomic, assign) BOOL enableSaveNewPhotoToLocalSystem

Discussion

发送新拍照的图片完成之后,是否将图片在本地另行存储。

如果设置为YES,您需要在saveNewPhotoToLocalSystemAfterSendingSuccess:回调中自行保存。

Declared In

RCConversationViewController.h

– saveNewPhotoToLocalSystemAfterSendingSuccess:

发送新拍照的图片完成之后,将图片在本地另行存储的回调

- (void)saveNewPhotoToLocalSystemAfterSendingSuccess:(UIImage *)newImage

Parameters

newImage

图片

Discussion

发送新拍照的图片完成之后,将图片在本地另行存储的回调

您可以在此回调中按照您的需求,将图片另行保存或执行其他操作。

Declared In

RCConversationViewController.h

– presentLocationViewController:

查看位置信息的位置详情

- (void)presentLocationViewController:(RCLocationMessage *)locationMessageContent

Parameters

locationMessageContent

点击的位置消息

Discussion

查看位置信息的位置详情

SDK在此方法中会默认调用RCLocationViewController在地图中展示位置。

Declared In

RCConversationViewController.h

– presentFilePreviewViewController:

查看文件消息中的文件

- (void)presentFilePreviewViewController:(RCMessageModel *)model

Parameters

model

消息Cell的数据模型

Discussion

查看文件消息中的文件

SDK在此方法中会默认调用RCFilePreviewViewController下载并展示文件。

Declared In

RCConversationViewController.h

– onPublicServiceMenuItemSelected:

点击公众号菜单

- (void)onPublicServiceMenuItemSelected:(RCPublicServiceMenuItem *)selectedMenuItem

Parameters

selectedMenuItem

被点击的公众号菜单

Discussion

点击公众号菜单

Declared In

RCConversationViewController.h

– didTapUrlInPublicServiceMessageCell:model:

点击公众号Cell中的URL的回调

- (void)didTapUrlInPublicServiceMessageCell:(NSString *)url model:(RCMessageModel *)model

Parameters

url

被点击的URL

model

被点击的Cell对应的Model

Discussion

点击公众号Cell中的URL的回调

Declared In

RCConversationViewController.h

  csInfo

用户的详细信息,此数据用于上传用户信息到客服后台,数据的nickName和portraitUrl必须填写。

@property (nonatomic, strong) RCCustomerServiceInfo *csInfo

Discussion

用户的详细信息,此数据用于上传用户信息到客服后台,数据的nickName和portraitUrl必须填写。

Declared In

RCConversationViewController.h

  csEvaInterval

客服评价弹出时间,在客服页面停留超过这个时间,离开客服会弹出评价提示框,默认为60s

@property (nonatomic, assign) NSTimeInterval csEvaInterval

Discussion

客服评价弹出时间,在客服页面停留超过这个时间,离开客服会弹出评价提示框,默认为60s

Declared In

RCConversationViewController.h

– commentCustomerServiceWithStatus:commentId:quitAfterComment:

评价客服服务,然后离开当前VC的。此方法有可能在离开客服会话页面触发,也可能是客服在后台推送评价触发,也可能用户点击机器人知识库评价触发。应用可以重写此方法来自定义客服评价界面。应用不要直接调用此方法。

- (void)commentCustomerServiceWithStatus:(RCCustomerServiceStatus)serviceStatus commentId:(NSString *)commentId quitAfterComment:(BOOL)isQuit

Parameters

serviceStatus

当前的服务类型。 @param commentId 评论ID。当是用户主动离开客服会话时,这个id是null;当客服在后台推送评价请求时,这个id是对话id;当用户点击机器人应答评价时,这个是机器人知识库id。

isQuit

评价完成后是否离开

@discussion sdk会在需要评价时调用此函数。如需自定义评价界面,请根据demo的RCDCustomerServiceViewController中的示例来重写此函数。

Discussion

评价客服服务,然后离开当前VC的。此方法有可能在离开客服会话页面触发,也可能是客服在后台推送评价触发,也可能用户点击机器人知识库评价触发。应用可以重写此方法来自定义客服评价界面。应用不要直接调用此方法。

Declared In

RCConversationViewController.h

– onSelectCustomerServiceGroup:result:

选择客服分组

- (void)onSelectCustomerServiceGroup:(NSArray *)groupList result:(void ( ^ ) ( NSString *groupId ))resultBlock

Parameters

groupList

所有客服分组

resultBlock

resultBlock @discussion 重写这个方法你可以自己重写客服分组界面,当用户选择技能组后,调用resultBlock传入用户选择分组的groupId,如果用户没有选择,可以传nil,会自动分配一个客服分组

Discussion

选择客服分组

Declared In

RCConversationViewController.h

– customerServiceLeftCurrentViewController

离开客服界面

- (void)customerServiceLeftCurrentViewController

Discussion

离开客服界面

调用此方法离开客服VC。

Declared In

RCConversationViewController.h

– onCustomerServiceModeChanged:

客服服务模式变化

- (void)onCustomerServiceModeChanged:(RCCSModeType)newMode

Parameters

newMode

新的客服服务模式。

Discussion

客服服务模式变化

Declared In

RCConversationViewController.h

– announceViewWillShow:announceClickUrl:

客服通告

- (void)announceViewWillShow:(NSString *)announceMsg announceClickUrl:(NSString *)announceClickUrl

Parameters

announceMsg

客服通告内容

announceClickUrl

客服通告链接url

Discussion

客服通告

此方法带回通告栏的展示内容及点击链接,须 App 自己实现

Declared In

RCConversationViewController.h

– showChooseUserViewController:cancel:

输入框内输入了@符号,即将显示选人界面的回调

- (void)showChooseUserViewController:(void ( ^ ) ( RCUserInfo *selectedUserInfo ))selectedBlock cancel:(void ( ^ ) ( void ))cancelBlock

Parameters

selectedBlock

选人后的回调

cancelBlock

取消选人的回调

@discussion 开发者如果想更换选人界面,可以重写方法,弹出自定义的选人界面,选人结束之后,调用selectedBlock传入选中的UserInfo即可。

Discussion

输入框内输入了@符号,即将显示选人界面的回调

Declared In

RCConversationViewController.h

– forwardMessage:completed:

合并转发消息的回调

- (void)forwardMessage:(NSInteger)index completed:(void ( ^ ) ( NSArray<RCConversation*> *conversationList ))completedBlock

Parameters

index

0 是逐条转发消息, 1 是合并转发消息。

completedBlock

返回需要转发到的会话的列表。

@discussion 开发者如果想更换转发消息的选择会话界面,可以重写此方法,弹出自定义的选择会话界面,选择结束之后,调用completedBlock传入选中的会话即可。

Discussion

合并转发消息的回调

Declared In

RCConversationViewController.h