RCConversationViewController Class Reference
Inherits from | RCBaseViewController : UIViewController |
---|---|
Conforms to | UICollectionViewDataSource UICollectionViewDelegate UICollectionViewDelegateFlowLayout UIGestureRecognizerDelegate UIScrollViewDelegate |
Declared in | RCConversationViewController.h |
– 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
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
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
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