需求:新建会话后并没有发送消息,但lm列已经设置为创建会话时的时间,希望它在未发送消息前为空。
使用场景:第一次加载会话列表时,App需要根据lm是否有值,来判断当前会话是否是 空 会话,如果是空的则过滤掉这个会话,不显示出来,会有更好的用户体验。
2016-03-02(开发中)
2016-03-07(已发布)
+1必须支持,一直受空会话的困扰!
支持,当前没有很好的方法来过滤空消息
这个改动本身倒没有问题,不过有可能会影响已有的应用对这个字段的判断破坏兼容性
LastMessage 有值,感觉更像一个 bug?
对的,本想可以用lastMessageAt来判断是否为空消息,但实际也不行。
我们还可以给 AVIMConversation 来加一个方法 hasMessages(判断该对话中是否有消息),帮用户做判断,等大家都切到这个 API 了,我们就可以改掉 lm 的默认值了。
hasMessages() 只能在App获取到结果后使用,希望能在 查询阶段(query condition)就把空会话过滤掉;这样 query limit参数才能更有意义。
hasMessages()
query limit
大家好,lm 默认为空的改动已经上线,请实验一下
控制台显示的已改,但是客户端sdk输出的还是没变
你好,我测试时没问题的。请问你的代码是怎么写的?新上线的这个功能不影响老的数据,老数据 lm 字段还是会有值的。
我这边是控制台和客户端都OK。
我是Android。
客户端如何设置查询条件,过滤掉lm为空的会话?
AVIMConversationQuery query = client.getQuery(); query.whereNotEqualsTo("lm", null);
不行。
在测试查询条件时候,发现一个bug, 在这里贴一下,希望引起注意。
控制台显示空,但是SDK查询结果不为空
你好,你的情况我没办法复现,请提供一个可以复现的 Demo。
App里 AVIMConversationQuery如何设置查询条件,过滤掉lm为空的数据?
AVIMConversationQuery
试了几种方式都不行。
也特别需要这个。AVIMConversationQuery 如何设置条件
你好,请先加上 avimConversationQuery.whereNotEqualsTo("lm",""); 判断条件。抄送 @molon
试了下,可行,过滤掉了lm为空的。
返回了剩下的所有对话, 还得等解决了bug https://forum.leancloud.cn/t/android-avimconversationquery/6821 才能使用。