logo
当前页

设置会话免打扰


功能概述

会话消息免打扰,指设置之后,SDK 在接收到当前会话的消息时,将不会进行推送通知,同时 “消息未读总数”也不会增加

消息免打扰.png

开启免打扰

调用 setConversationNotificationStatus 接口,传入 conversationID 指定某个会话,设置消息免打扰功能。

// 将某个会话设置成消息免打扰状态
// 以群聊会话为例
[self.zim setConversationNotificationStatus:ZIMConversationNotificationStatusDoNotDisturb conversationID:@"CONV_ID" conversationType:ZIMConversationTypeGroup callback:^(ZIMError * _Nonnull errorInfo) {
    // 设置消息免打扰状态的结果
    if(errorInfo.code == ZIMErrorCodeSuccess) {
      // ......
    } else {
      // ......
    }
}];

获取免打扰状态

设置免打扰后,客户端本地存在该会话的操作端和多端在线设备,都将会收到 conversationChanged 通知事件。 离线设备重新登录后,可通过查询会话列表的 ZIMConversation.notificationStatus 属性获取会话免打扰状态。

// 1. 监听会话变更事件
- (void)zim:(ZIM *)zim conversationChanged:(NSArray<ZIMConversationChangeInfo *> *)conversationChangeInfoList {
    // 获取会话变更列表
    for (ZIMConversationChangeInfo *info in conversationChangeInfoList) {
        // info.conversation.notificationStatus
    }
}

// 2. 查询会话列表
ZIMConversationQueryConfig *config = [[ZIMConversationQueryConfig alloc] init];
config.count = 10;
config.nextConversation = nil;

[self.zim queryConversationListWithConfig:config callback:^(NSArray<ZIMConversation *> * _Nonnull conversationList, ZIMError * _Nonnull errorInfo) {
    // 获取会话列表查询结果
    if(errorInfo.code == ZIMErrorCodeSuccess) {
        for (ZIMConversation *info in conversationList) {
          // info.notificationStatus
        }
    } else {
      // ......
    }
}];

Previous

管理消息未读数

Next

删除会话

当前页

返回到顶部