-
单条消息最大128K,所以不能设置太多消息内容。字段太多之后,尾部的字段就会丢失。
-
自定义通知类消息不能填满屏幕宽度。只能手动设置。
-
要更改头像旁边的文字内容只能手动覆盖原有的消息提供者,去覆盖普通的TextMessageProvider ,ImageMessageProvider,等等比如这种下面这种效果去去加布局内容,比如重写系统的TextMessageItemProvider,然后再注册一下该提供者。
-
融云测试环境,当调用 connect 注册token 后 ,即使服务器端这个时候传入了用户id 和姓名 ,并且已经能正常聊天的情况下,依然会出现查不到用户姓名和id 的情况(在融云的API调试中查询用户), 融云的正式环境没有这个问题
-
打开多端消息同步后,在一端已经阅读过的消息,在另一端会受到融云消息补偿机制推过来的消息,这个时候,会导致setOnReceiveMessageListener 监听的逻辑就会异常,明明受到了消息,去未读列表看,啥都没有,可以这样做,晚一些再去显示监听到的消息,并配合getUnreadCount拿到的未读消息数进行判断,我观察到的现象是,如果你给一端发了5条消息,并且你进入这端的会话详情页去读了这几条消息,当你在另一端登录同一账号时,setOnReceiveMessageListener的 onReceived 会给你返回来好几次的 信息,其中的left 从 5、 4、 3、 2 、1 、0 这样递减
RongIM.setOnReceiveMessageListener(new RongIMClient.OnReceiveMessageListener() {
@Override
public boolean onReceived(io.rong.imlib.model.Message message, int left) {
//剩余0条才显示
if(left == 0) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
//晚一秒再去拿unreadCount 数。
int unreadCount = RongIM.getInstance().getUnreadCount(Conversation.ConversationType.PRIVATE);
if(unreadCount > 0) {
//如果晚一秒拿到的未读消息数还是大于0,则显示该条消息的通知。
setNotification(message, left);
}
} }, 500);
}
if (message.getContent() instanceof HouseMessage || message.getContent() instanceof MarketMessage) {
SingleSoundPlayerHelper.playAsset("momo.mp3");
}
return false;
}
});