Package io.rong.imkit
Interface MessageInterceptor
-
- All Implemented Interfaces:
public interface MessageInterceptor
消息拦截器
-
-
Method Summary
Modifier and Type Method Description abstract boolean
interceptReceivedMessage(Message message, int left, boolean hasPackage, boolean offline)
接收实时或者离线消息拦回调。 注意: 1. abstract boolean
interceptOnSendMessage(Message message)
准备发送消息的拦截回调。 abstract boolean
interceptOnSentMessage(Message message)
发送消息成功后的拦截回调。 abstract boolean
interceptOnInsertOutgoingMessage(ConversationType type, String targetId, SentStatus sentStatus, MessageContent content, long sentTime)
准备插入Outgoing消息的拦截回调。 abstract boolean
interceptOnInsertIncomingMessage(ConversationType type, String targetId, String senderId, ReceivedStatus receivedStatus, MessageContent content, long sentTime)
准备插入Incoming消息的拦截回调。 boolean
)>interceptOnInsertOutgoingMessage(ConversationType type, String targetId, SentStatus sentStatus, MessageContent content, long time, ResultCallback<Message> callback)
准备插入发送消息的拦截回调。 -
-
Method Detail
-
interceptReceivedMessage
abstract boolean interceptReceivedMessage(Message message, int left, boolean hasPackage, boolean offline)
接收实时或者离线消息拦回调。
注意: 1. 针对接收离线消息时,服务端会将 200 条消息打成一个包发到客户端,客户端对这包数据进行解析。 2. hasPackage 标识是否还有剩余的消息包,left 标识这包消息解析完逐条抛送给 App 层后,剩余多少条。 如何判断离线消息收完: 1. hasPackage 和 left 都为 0; 2. hasPackage 为 0 标识当前正在接收最后一包(200条)消息,left 为 0 标识最后一包的最后一条消息也已接收完毕。
- Parameters:
message
- 接收到的消息对象left
- 每个数据包数据逐条上抛后,还剩余的条数hasPackage
- 是否在服务端还存在未下发的消息包offline
- 消息是否离线消息- Returns:
true 用户拦截此次消息,sdk不再做任何分发处理,false,交由sdk处理
-
interceptOnSendMessage
abstract boolean interceptOnSendMessage(Message message)
准备发送消息的拦截回调。
- Parameters:
message
- 准备发送的消息- Returns:
true 用户拦截此次消息,sdk不再做后续处理,false,交由sdk处理
-
interceptOnSentMessage
abstract boolean interceptOnSentMessage(Message message)
发送消息成功后的拦截回调。
- Parameters:
message
- 准备发送的消息- Returns:
true 用户拦截此次消息,sdk不再做后续处理,false,交由sdk处理
-
interceptOnInsertOutgoingMessage
abstract boolean interceptOnInsertOutgoingMessage(ConversationType type, String targetId, SentStatus sentStatus, MessageContent content, long sentTime)
准备插入Outgoing消息的拦截回调。
- Parameters:
type
- 会话类型。targetId
- 会话 id。比如私人会话时,是对方的 id; 群组会话时,是群 id; 讨论组会话时,则为该讨论组的 id。sentStatus
- 发送状态 Message.content
- 消息内容。如TextMessageImageMessage 等。sentTime
- 消息的发送时间 getSentTime 。- Returns:
true 用户拦截此次消息,sdk不再做后续处理,false,交由sdk处理
-
interceptOnInsertIncomingMessage
abstract boolean interceptOnInsertIncomingMessage(ConversationType type, String targetId, String senderId, ReceivedStatus receivedStatus, MessageContent content, long sentTime)
准备插入Incoming消息的拦截回调。
- Parameters:
type
- 会话类型。targetId
- 会话 id。比如私人会话时,是对方的 id; 群组会话时,是群 id; 讨论组会话时,则为该讨论组的 id。senderId
- 发送方 idreceivedStatus
- 接收状态 Message.content
- 消息内容。如 TextMessageImageMessage等。sentTime
- 消息的发送时间 getSentTime 。- Returns:
true 用户拦截此次消息,sdk不再做后续处理,false,交由sdk处理
-
interceptOnInsertOutgoingMessage
boolean )>interceptOnInsertOutgoingMessage(ConversationType type, String targetId, SentStatus sentStatus, MessageContent content, long time, ResultCallback<Message> callback)
准备插入发送消息的拦截回调。
- Parameters:
type
- 会话类型。targetId
- 会话 id。比如私人会话时,是对方的 id; 群组会话时,是群 id; 讨论组会话时,则为该讨论组的 id。sentStatus
- 发送状态 Message.content
- 消息内容。如TextMessageImageMessage 等。time
- 消息的发送时间 getSentTime 。callback
- 1,拦截图片消息时,此方法return true,并且此callback返回需返回onError,处理业务侧拦截图片消息逻辑。 2,图片消息设置消息扩展时,此方法return true,构建message将可扩展属性设置为ture,并调用callback.- Returns:
true 用户拦截此次消息,sdk不再做后续处理,false,交由sdk处理
-
-
-
-