在群聊和公共聊天的情况下,如何使用QMServicesManager从对话框列表中删除对话框?

尼辛·曼古鲁(Nithin Mangolu)

这个问题是对我以前的问题的扩展,但有新的要求。这是我以前的问题

所以我的新要求是

现在,如果我想删除群聊,应该如何处理?如果我在其中使用相同的方法,则会将forAllUsers传递为硬编码的“ NO”。写在QMChatServices.m中

- (void)deleteDialogWithID:(NSString *)dialogId completion:(void (^)(QBResponse *))completion {

    NSParameterAssert(dialogId);

    __weak __typeof(self)weakSelf = self;

    [QBRequest deleteDialogsWithIDs:[NSSet setWithObject:dialogId] forAllUsers:NO successBlock:^(QBResponse *response, NSArray *deletedObjectsIDs, NSArray *notFoundObjectsIDs, NSArray *wrongPermissionsObjectsIDs) {
        //
        [weakSelf.dialogsMemoryStorage deleteChatDialogWithID:dialogId];
        [weakSelf.messagesMemoryStorage deleteMessagesWithDialogID:dialogId];

        if ([weakSelf.multicastDelegate respondsToSelector:@selector(chatService:didDeleteChatDialogWithIDFromMemoryStorage:)]) {
            [weakSelf.multicastDelegate chatService:weakSelf didDeleteChatDialogWithIDFromMemoryStorage:dialogId];
        }

        [weakSelf.loadedAllMessages removeObjectsForKeys:deletedObjectsIDs];

        if (completion) {
            completion(response);
        }
    } errorBlock:^(QBResponse *response) {
        //
        if (response.status == QBResponseStatusCodeNotFound || response.status == 403) {
            [weakSelf.dialogsMemoryStorage deleteChatDialogWithID:dialogId];

            if ([weakSelf.multicastDelegate respondsToSelector:@selector(chatService:didDeleteChatDialogWithIDFromMemoryStorage:)]) {
                [weakSelf.multicastDelegate chatService:weakSelf didDeleteChatDialogWithIDFromMemoryStorage:dialogId];
            }
        }
        else {

            [weakSelf.serviceManager handleErrorResponse:response];
        }

        if (completion) {
            completion(response);
        }
    }];
}

所以现在我的疑问是..

问题1:如果我们要为所有用户删除对话框,该怎么办?问题2:可以说有3个用户。用户1,用户2和用户3。现在,User1已使用User2和User3创建了组。

因此,此方法对所有3个不同用户的用处如何。我的意思是,如果User1使用

[ServicesManager.instance.chatService deleteDialogWithID:dialog.ID completion:nil];

如果User2和User3使用相同的方法会发生什么。

天气它可以作为退出对话框或删除对话框的出口。在群聊和公共聊天的情况下,我对此方法如何适用于不同的用户几乎不感到困惑。

问题3:还有其他方法可以退出群聊吗?我希望很清楚!

维特古尔
  1. 是的,目前没有用于所有用户删除对话框的界面。但是请记住,只有组对话框的所有者(其创建者)可以删除它并且所有者不能更改,即使他离开对话框也是如此。我们将考虑在不久的将来添加这种方法,但是现在您可以轻松地根据需要对其进行修改(欢迎您从我们的服务存储库中派生)。

  2. 如果任何用户使用此方法-他将不在该组中(按服务器),但组本身仍将与其他成员一起存在。但是其他成员只有在从REST重新下载对话框时才知道左用户。因此,为了实时通知他们,我们在离开前发送XMPP通知,就像这样

  3. 我在2中所说的差不多。通知用户有关通过REST(QBRequest)请求进行离开和删除对话框的信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在vscode中没有对话框的情况下如何直接进入定义?

来自分类Dev

如何在没有窗口的情况下使用tkinter文件对话框

来自分类Dev

Vue vuetify对话框如何在不单击的情况下触发对话框组件

来自分类Dev

QuickBlox 2.0聊天对话框-如何检测用户加入或离开群组聊天对话框?

来自分类Dev

如何在不打开/保存对话框的情况下播放Telerik RadCaptcha .wav文件

来自分类Dev

如何在不阻止主窗体的情况下创建对话框?

来自分类Dev

如何在没有AVISaveOptions对话框的情况下获取AVICOMPRESSOPTIONS?

来自分类Dev

更新:如何在无进度对话框的情况下启动下载的安装程序?

来自分类Dev

如何在没有对话框的情况下固定应用程序

来自分类Dev

如何在没有对话框的情况下打印XPS?

来自分类Dev

AEM6-如何在没有对话框的情况下编辑组件?

来自分类Dev

如何在不触发“打印对话框”的情况下执行SSRS URL操作?

来自分类Dev

如何在无需打开应用程序的情况下显示对话框

来自分类Dev

如何在没有AVISaveOptions对话框的情况下获取AVICOMPRESSOPTIONS?

来自分类Dev

如何在不显示保存对话框的情况下保存Excel文件

来自分类Dev

如何在不打开对话框的情况下按位置加密特定图像?

来自分类Dev

如何在没有flex或transform的情况下居中对话框

来自分类Dev

如何在没有“文本输入”对话框的情况下运行LibreOffice Calc?

来自分类Dev

如何在不使用“文件下载”对话框的情况下使用WebBrowser控件下载文件?

来自分类Dev

如何在不使用Rundll32的情况下打开“查找用户,联系人和组”对话框?

来自分类Dev

Android USB主机。如何在不显示对话框的情况下获得使用USB设备的许可?

来自分类Dev

如何在不弹出对话框的情况下使用 tf.exe 签入单个文件?

来自分类Dev

在使用Caffeine扩展程序的情况下,仅在GNOME中约30秒后才会显示“关闭”对话框

来自分类Dev

Android:如何正确删除对话框

来自分类Dev

Android:如何正确删除对话框

来自分类Dev

在jqgrid中关闭删除对话框

来自分类Dev

从进度对话框中删除背景

来自分类Dev

如何关闭和删除无模式qt对话框

来自分类Dev

创建对话框以编辑和删除Yii中的记录

Related 相关文章

  1. 1

    在vscode中没有对话框的情况下如何直接进入定义?

  2. 2

    如何在没有窗口的情况下使用tkinter文件对话框

  3. 3

    Vue vuetify对话框如何在不单击的情况下触发对话框组件

  4. 4

    QuickBlox 2.0聊天对话框-如何检测用户加入或离开群组聊天对话框?

  5. 5

    如何在不打开/保存对话框的情况下播放Telerik RadCaptcha .wav文件

  6. 6

    如何在不阻止主窗体的情况下创建对话框?

  7. 7

    如何在没有AVISaveOptions对话框的情况下获取AVICOMPRESSOPTIONS?

  8. 8

    更新:如何在无进度对话框的情况下启动下载的安装程序?

  9. 9

    如何在没有对话框的情况下固定应用程序

  10. 10

    如何在没有对话框的情况下打印XPS?

  11. 11

    AEM6-如何在没有对话框的情况下编辑组件?

  12. 12

    如何在不触发“打印对话框”的情况下执行SSRS URL操作?

  13. 13

    如何在无需打开应用程序的情况下显示对话框

  14. 14

    如何在没有AVISaveOptions对话框的情况下获取AVICOMPRESSOPTIONS?

  15. 15

    如何在不显示保存对话框的情况下保存Excel文件

  16. 16

    如何在不打开对话框的情况下按位置加密特定图像?

  17. 17

    如何在没有flex或transform的情况下居中对话框

  18. 18

    如何在没有“文本输入”对话框的情况下运行LibreOffice Calc?

  19. 19

    如何在不使用“文件下载”对话框的情况下使用WebBrowser控件下载文件?

  20. 20

    如何在不使用Rundll32的情况下打开“查找用户,联系人和组”对话框?

  21. 21

    Android USB主机。如何在不显示对话框的情况下获得使用USB设备的许可?

  22. 22

    如何在不弹出对话框的情况下使用 tf.exe 签入单个文件?

  23. 23

    在使用Caffeine扩展程序的情况下,仅在GNOME中约30秒后才会显示“关闭”对话框

  24. 24

    Android:如何正确删除对话框

  25. 25

    Android:如何正确删除对话框

  26. 26

    在jqgrid中关闭删除对话框

  27. 27

    从进度对话框中删除背景

  28. 28

    如何关闭和删除无模式qt对话框

  29. 29

    创建对话框以编辑和删除Yii中的记录

热门标签

归档