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