当前知识库站点已不再维护。请移步新版知识库:https://help.rongcloud.cn/

拦截过滤发送的消息

在发送消息之前进行对某些消息过滤
发布时间: 2017-12-12 11:46

回答:

4.x SDK 版本的方案

1、在init之后注册发送消息的监听器:

RongIM.getInstance().setSendMessageListener(this)

2、在onSend方法中过滤消息:

/**

         * 消息发送前监听器处理接口(是否发送成功可以从SentStatus属性获取)

         * 可以通过这个方法,过滤,修改发送出的消息。

         *

         * @param message 发送的消息实例。

         * @return 处理后的消息实例,注意:可以通过 return 的返回值,过滤消息

         * 当 return null 时,该消息不发送,界面也无显示

         * 也可以更改 message 内的消息内容,发送出的消息,就是更改后的。

         */

        Message onSend(Message message);

5.x SDK 版本的方案

1、在init之后注册发送消息的监听器:

  IMCenter.getInstance().setMessageInterceptor(interceptor);

2.在interceptOnSendMessage方法中过滤消息:

/**

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

     *

     * @param message 准备发送的消息

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

     */

    boolean interceptOnSendMessage(Message message);