如题,iOS怎么获取群聊列表,还有怎么退出群聊?
你好,获取聊天列表可以参考对话的查询 - 对话列表,可以根据对话的 members 个数判断是否为群聊。
「退出群聊」是指什么意思?将某人踢出群聊吗?
是自己主动退出群聊。就是别人把我拉到群里,我不想在这个群里,自己主动退出。
请参考文档: 自身退出对话。
谢谢~~~~~
AVIMConversationQuery *query = [[LCChatKit sharedInstance].client conversationQuery]; [query whereKey:@"members.count" greaterThan:@(2)]; [query findConversationsWithCallback:^(NSArray *objects, NSError *error) { NSLog(@"查询成功!"); }];
这样查询不对么?为什么查询不到,不设置条件是可以查到对话的,而且这些对话有包含members大于2的
查询条件不可以是数组的长度,数组长度只能在查询结果中判断。
其实判断是否为群聊,我上面的描述不太恰当,很抱歉。因为随着成员的减少,群聊也可能只有两个甚至一个成员。
文档中推荐的方式是:将单聊/群聊、私密/公开等属性存入到 Conversation.attributes 之中,在应用层进行区别对待。
文档链接: https://leancloud.cn/docs/realtime_v2.html#hash1182528481
我通过文档的方式退出聊天后,为什么依旧可以通过AVIMConversationQuery查询到此对话
AVIMConversationQuery
用户主动退出某个会话后,查询对话列表 是不会查询到此会话的。
根据 id 查询可以查询到会话。
嗯,我是退出群聊后通过自定义的条件搜索群聊(我们有做群聊列表),还是能找到此会话,只是打不开了。
「自定义的条件搜索群聊」指的查询条件是什么呢?需要我这边提供什么帮助?
我的搜索条件是会话的自定义属性type,因为我们有群聊列表,群聊列表的会话就是我搜索出来的,但现在退出群聊后,我发现搜索出来的群聊列表没有变化,所以我想知道有没有退出群聊后无法搜索到会话的退出会话API
退出会话API
能粘贴一下您的查询代码吗?
AVIMConversationQuery *query = [[LCChatKit sharedInstance].client conversationQuery]; [query whereKey:AVIMAttr(@"type") equalTo:@(1)]; [query findConversationsWithCallback:^(NSArray *objects, NSError *error) { _secArray = objects; [self.myTableView reloadData]; }];
你好,这个问题确认了一下。没有查询条件的时候,AVIMConversationQuery 会默认查询当前 Client 参与的的会话列表。
添加自定义的查询条件后,查询结果会返回在 _Conversation 表中所有符合查询条件的会话,不管当前 Client 是否参与。
所以给您的建议是增加一个查询条件:会话成员中包括自己就可以了。
[query whereKey: @"m" containsAllObjectsInArray:@[@"Tom"]];