RCIMClientReceiveMessageDelegate Protocol Reference
Conforms to | NSObject |
---|---|
Declared in | RCIMClient.h |
Overview
IMlib消息接收的监听器
@discussion 设置IMLib的消息接收监听器请参考RCIMClient的setReceiveMessageDelegate:object:方法。
Warning: 如果您使用IMlib,可以设置并实现此Delegate监听消息接收; 如果您使用IMKit,请使用RCIM中的RCIMReceiveMessageDelegate监听消息接收,而不要使用此监听器,否则会导致IMKit中无法自动更新UI!
接收消息的回调方法
– onReceived:left:object:
required method
接收消息的回调方法
- (void)onReceived:(RCMessage *)message left:(int)nLeft object:(id)object
Parameters
message |
当前接收到的消息 |
---|---|
nLeft |
还剩余的未接收的消息数,left>=0 |
object |
消息监听设置的key值 |
Discussion
接收消息的回调方法
如果您设置了IMlib消息监听之后,SDK在接收到消息时候会执行此方法。 其中,left为还剩余的、还未接收的消息数量。比如刚上线一口气收到多条消息时,通过此方法,您可以获取到每条消息,left会依次递减直到0。 您可以根据left数量来优化您的App体验和性能,比如收到大量消息时等待left为0再刷新UI。 object为您在设置消息接收监听时的key值。
Declared In
RCIMClient.h
接收消息的回调方法
– onReceived:left:object:offline:hasPackage:
接收消息的回调方法
- (void)onReceived:(RCMessage *)message left:(int)nLeft object:(id)object offline:(BOOL)offline hasPackage:(BOOL)hasPackage
Parameters
message |
当前接收到的消息 |
---|---|
nLeft |
还剩余的未接收的消息数,left>=0 |
object |
消息监听设置的key值 |
offline |
是否是离线消息 |
hasPackage |
SDK 拉取服务器的消息以包(package)的形式批量拉取,有 package 存在就意味着远端服务器还有消息尚未被 SDK 拉取 |
Discussion
接收消息的回调方法
和上面的 - (void)onReceived:(RCMessage *)message left:(int)nLeft object:(id)object 功能完全一致,额外把 offline 和 hasPackage 参数暴露,开发者可以根据 nLeft、offline、hasPackage 来决定何时的时机刷新 UI ;建议当 hasPackage=0 并且 nLeft=0 时刷新 UI
Warning: 如果使用此方法,那么就不能再使用 RCIM 中 - (void)onReceived:(RCMessage *)message left:(int)nLeft object:(id)object 的使用,否则会出现重复操作的情形
Declared In
RCIMClient.h
消息被撤回的回调方法
– onMessageRecalled:
消息被撤回的回调方法
- (void)onMessageRecalled:(long)messageId
Parameters
messageId |
被撤回的消息ID |
---|
Discussion
消息被撤回的回调方法
被撤回的消息会变更为RCRecallNotificationMessage,App需要在UI上刷新这条消息。
Declared In
RCIMClient.h
请求消息已读回执(收到需要阅读时发送回执的请求,收到此请求后在会话页面已经展示该 messageUId 对应的消息或者调用 getHistoryMessages 获取消息的时候,包含此 messageUId 的消息,需要调用 sendMessageReadReceiptResponse 接口发送消息阅读回执)
– onMessageReceiptRequest:targetId:messageUId:
请求消息已读回执(收到需要阅读时发送回执的请求,收到此请求后在会话页面已经展示该 messageUId 对应的消息或者调用 getHistoryMessages 获取消息的时候,包含此 messageUId 的消息,需要调用 sendMessageReadReceiptResponse 接口发送消息阅读回执)
- (void)onMessageReceiptRequest:(RCConversationType)conversationType targetId:(NSString *)targetId messageUId:(NSString *)messageUId
Parameters
conversationType |
conversationType |
---|---|
targetId |
targetId |
messageUId |
请求已读回执的消息ID |
Discussion
请求消息已读回执(收到需要阅读时发送回执的请求,收到此请求后在会话页面已经展示该 messageUId 对应的消息或者调用 getHistoryMessages 获取消息的时候,包含此 messageUId 的消息,需要调用 sendMessageReadReceiptResponse 接口发送消息阅读回执)
Declared In
RCIMClient.h
消息已读回执响应(收到阅读回执响应,可以按照 messageUId 更新消息的阅读数)
– onMessageReceiptResponse:targetId:messageUId:readerList:
消息已读回执响应(收到阅读回执响应,可以按照 messageUId 更新消息的阅读数)
- (void)onMessageReceiptResponse:(RCConversationType)conversationType targetId:(NSString *)targetId messageUId:(NSString *)messageUId readerList:(NSMutableDictionary *)userIdList
Parameters
conversationType |
conversationType |
---|---|
targetId |
targetId |
messageUId |
请求已读回执的消息ID |
userIdList |
已读userId列表 |
Discussion
消息已读回执响应(收到阅读回执响应,可以按照 messageUId 更新消息的阅读数)
Declared In
RCIMClient.h