IM 即时通讯 (442)
Android (209)
- 初始化&链接 (8)
- 事件&监听处理 (7)
- 用户信息 (13)
- 会话列表 (16)
- 聊天会话 (26)
- 消息处理 (35)
- 自定义消息 (6)
- 音视频 (2)
- 推送&通知 (34)
- 扩展功能 (4)
- 第三方地图 (3)
- 依赖&配置 (9)
- 升级说明 (3)
- 其他 (43)
iOS (168)
- SDK 导入 (10)
- 连接 (8)
- 事件处理 (2)
- 用户信息 (3)
- 会话列表 (14)
- 聊天会话 (44)
- 消息处理 (26)
- 自定义消息 (8)
- 推送&通知 (19)
- 扩展功能 (5)
- 国际化 (4)
- 音视频 (3)
- 其他 (22)
Web (36)
Server (29)
拦截消息
如何拦截消息
发布时间: 2018-11-06 15:39
回答:
定义 MessageInterceptor,使用 RongIM.setMessageInterceptor 进行注册。
MessageInterceptor 中返回 true 即为消费事件。
需要注意的是如果拦截并消费了信息,后续逻辑需要自己实现,如:通知,页面刷新等。
/** * 设置接收消息时的拦截器 * * @param messageInterceptor 拦截器 */ public void setMessageInterceptor(MessageInterceptor messageInterceptor)
/** * 接收消息的拦截器 */ public interface MessageInterceptor { /** * 收到消息处理的回调 * * @param message * @return true: 拦截, 不显示 false: 不拦截, 显示此消息。 * 此处只处理实时收到消息时,在界面上是否显示此消息。 * 在重新加载会话页面时,不受此处逻辑控制。 * 若要永久不显示此消息,需要从数据库删除该消息,在回调处理中调用 {@link #deleteMessages(int[], RongIMClient.ResultCallback)}, * 否则在重新加载会话时会将此消息重新加载出来。 */ boolean intercept(Message message); }