融云 IMkit 拦截或监听所有发送消息
最近集成融云 IMkit 的 SDK, 有一个需求是要监听所有发出去的消息, 根据消息类型拦截或者进行修改.
在官方文档上着了一遍, 都没有找到, 偶然在看 API 文档的时候看见了一个监听然后做了尝试, 是可以满足需求的, 所以再次记录一下.
具体的方法是 RongIM 类下的 setSendMessageListener 方法.
代码如下.
/**
* 设置发送消息的监听。
*
* @param listener 发送消息的监听。
*/
RongIM.setSendMessageListener(new OnSendMessageListener() {
@Override
public Message onSend(Message message) {
// 发送消息之前会走此方法. message 为要发送的消息,
// 如果返回 null 的话, 就不会发送此消息了.
return message;
}
@Override
public boolean onSent(Message message, SentMessageErrorCode sentMessageErrorCode) {
发送成功之后会走方法. 返回 true , 就会走 SDK 的后续逻辑. 返回 false 就拦截了. return true;
}
}).