需求:
新建会话后并没有发送消息,但lm列已经设置为创建会话时的时间,希望它在未发送消息前为空。

使用场景:
第一次加载会话列表时,App需要根据lm是否有值,来判断当前会话是否是 空 会话,如果是空的则过滤掉这个会话,不显示出来,会有更好的用户体验。

2016-03-02(开发中)

2016-03-07(已发布)

+1
必须支持,一直受空会话的困扰!

支持,当前没有很好的方法来过滤空消息

这个改动本身倒没有问题,不过有可能会影响已有的应用对这个字段的判断破坏兼容性

LastMessage 有值,感觉更像一个 bug?

对的,本想可以用lastMessageAt来判断是否为空消息,但实际也不行。

我们还可以给 AVIMConversation 来加一个方法 hasMessages(判断该对话中是否有消息),帮用户做判断,等大家都切到这个 API 了,我们就可以改掉 lm 的默认值了。

hasMessages() 只能在App获取到结果后使用,希望能在 查询阶段(query condition)就把空会话过滤掉;这样 query limit参数才能更有意义。

大家好,lm 默认为空的改动已经上线,请实验一下

控制台显示的已改,但是客户端sdk输出的还是没变

你好,我测试时没问题的。
请问你的代码是怎么写的?
新上线的这个功能不影响老的数据,老数据 lm 字段还是会有值的。

我这边是控制台和客户端都OK。

我是Android。

客户端如何设置查询条件,过滤掉lm为空的会话?

AVIMConversationQuery query = client.getQuery();
query.whereNotEqualsTo("lm", null);

不行。

在测试查询条件时候,发现一个bug, 在这里贴一下,希望引起注意。

你好,你的情况我没办法复现,请提供一个可以复现的 Demo。

App里 AVIMConversationQuery如何设置查询条件,过滤掉lm为空的数据?

试了几种方式都不行。

也特别需要这个。AVIMConversationQuery 如何设置条件

你好,请先加上 avimConversationQuery.whereNotEqualsTo("lm",""); 判断条件。抄送 @molon