Package io.rong.imkit

Interface MessageInterceptor

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • 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(Conversation.ConversationType type, String targetId, Message.SentStatus sentStatus, MessageContent content, long sentTime) 准备插入Outgoing消息的拦截回调。
      abstract boolean interceptOnInsertIncomingMessage(Conversation.ConversationType type, String targetId, String senderId, Message.ReceivedStatus receivedStatus, MessageContent content, long sentTime) 准备插入Incoming消息的拦截回调。
      boolean interceptOnInsertOutgoingMessage(Conversation.ConversationType type, String targetId, Message.SentStatus sentStatus, MessageContent content, long time, RongIMClient.ResultCallback<Message> callback) 准备插入发送消息的拦截回调。
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

    • 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(Conversation.ConversationType type, String targetId, Message.SentStatus sentStatus, MessageContent content, long sentTime)

        准备插入Outgoing消息的拦截回调。

        Parameters:
        type - 会话类型。
        targetId - 会话 id。比如私人会话时,是对方的 id; 群组会话时,是群 id; 讨论组会话时,则为该讨论组的 id。
        sentStatus - 发送状态 Message.SentStatus
        content - 消息内容。如TextMessageImageMessage 等。
        sentTime - 消息的发送时间 getSentTime 。
        Returns:

        true 用户拦截此次消息,sdk不再做后续处理,false,交由sdk处理

      • interceptOnInsertIncomingMessage

         abstract boolean interceptOnInsertIncomingMessage(Conversation.ConversationType type, String targetId, String senderId, Message.ReceivedStatus receivedStatus, MessageContent content, long sentTime)

        准备插入Incoming消息的拦截回调。

        Parameters:
        type - 会话类型。
        targetId - 会话 id。比如私人会话时,是对方的 id; 群组会话时,是群 id; 讨论组会话时,则为该讨论组的 id。
        senderId - 发送方 id
        receivedStatus - 接收状态 Message.ReceivedStatus
        content - 消息内容。如 TextMessageImageMessage等。
        sentTime - 消息的发送时间 getSentTime 。
        Returns:

        true 用户拦截此次消息,sdk不再做后续处理,false,交由sdk处理

      • interceptOnInsertOutgoingMessage

         boolean interceptOnInsertOutgoingMessage(Conversation.ConversationType type, String targetId, Message.SentStatus sentStatus, MessageContent content, long time, RongIMClient.ResultCallback<Message> callback)

        准备插入发送消息的拦截回调。

        Parameters:
        type - 会话类型。
        targetId - 会话 id。比如私人会话时,是对方的 id; 群组会话时,是群 id; 讨论组会话时,则为该讨论组的 id。
        sentStatus - 发送状态 Message.SentStatus
        content - 消息内容。如TextMessageImageMessage 等。
        time - 消息的发送时间 getSentTime 。
        callback - 1,拦截图片消息时,此方法return true,并且此callback返回需返回onError,处理业务侧拦截图片消息逻辑。 2,图片消息设置消息扩展时,此方法return true,构建message将可扩展属性设置为ture,并调用callback.
        Returns:

        true 用户拦截此次消息,sdk不再做后续处理,false,交由sdk处理