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

开启免打扰
调用 setConversationNotificationStatus 接口,传入 conversationID 指定某个会话,设置消息免打扰功能。
示例代码
// 将某个会话设置为消息免打扰状态
// 以单聊会话为例
// 设置会话类型为单聊
ZIMConversationType conversationType = ZIMConversationType.PEER;
// 设置会话为免打扰
zim.setConversationNotificationStatus(ZIMConversationNotificationStatus.DO_NOT_DISTURB, "CONV_ID", conversationType, new ZIMConversationNotificationStatusSetCallback() {
    @Override
    public void onConversationNotificationStatusSet(ZIMError errorInfo) {
        // 设置消息免打扰的结果
        if(errorInfo.code == ZIMErrorCodeSuccess) {
          // ......
        } else {
          // ......
        }  
    }
});// 将某个会话设置为消息免打扰状态
// 以单聊会话为例
// 设置会话类型为单聊
ZIMConversationType conversationType = ZIMConversationType.PEER;
// 设置会话为免打扰
zim.setConversationNotificationStatus(ZIMConversationNotificationStatus.DO_NOT_DISTURB, "CONV_ID", conversationType, new ZIMConversationNotificationStatusSetCallback() {
    @Override
    public void onConversationNotificationStatusSet(ZIMError errorInfo) {
        // 设置消息免打扰的结果
        if(errorInfo.code == ZIMErrorCodeSuccess) {
          // ......
        } else {
          // ......
        }  
    }
});示例代码
// 将某个会话设置成消息免打扰状态
// 以群聊会话为例
[self.zim setConversationNotificationStatus:ZIMConversationNotificationStatusDoNotDisturb conversationID:@"CONV_ID" conversationType:ZIMConversationTypeGroup callback:^(ZIMError * _Nonnull errorInfo) {
    // 设置消息免打扰状态的结果
    if(errorInfo.code == ZIMErrorCodeSuccess) {
      // ......
    } else {
      // ......
    }
}];// 将某个会话设置成消息免打扰状态
// 以群聊会话为例
[self.zim setConversationNotificationStatus:ZIMConversationNotificationStatusDoNotDisturb conversationID:@"CONV_ID" conversationType:ZIMConversationTypeGroup callback:^(ZIMError * _Nonnull errorInfo) {
    // 设置消息免打扰状态的结果
    if(errorInfo.code == ZIMErrorCodeSuccess) {
      // ......
    } else {
      // ......
    }
}];示例代码
// 将某个会话设置成消息免打扰状态
// 以群聊会话为例
zim->setConversationNotificationStatus(ZIMConversationNotificationStatusDoNotDisturb, "CONV_ID", ZIMConversationTypeGroup, [=](ZIMError errorInfo) {
    // 设置消息免打扰的结果
    if(errorInfo.code == ZIMErrorCodeSuccess) {
      // ......
    } else {
      // ......
    }
});// 将某个会话设置成消息免打扰状态
// 以群聊会话为例
zim->setConversationNotificationStatus(ZIMConversationNotificationStatusDoNotDisturb, "CONV_ID", ZIMConversationTypeGroup, [=](ZIMError errorInfo) {
    // 设置消息免打扰的结果
    if(errorInfo.code == ZIMErrorCodeSuccess) {
      // ......
    } else {
      // ......
    }
});示例代码
// 将某个群会话设置成消息免打扰状态
// 以群聊消息为例
const status = 2;  // 将会话状态设置为免打扰 
const conversationID = '';
const conversationType = 2;  // 会话类型为群聊
zim.setConversationNotificationStatus(status, conversationID, conversationType)
    .then((res: ZIMConversationNotificationStatusSetResult) => {
        // 操作成功
    })
    .catch((err: ZIMError) => {
        // 操作失败
    });// 将某个群会话设置成消息免打扰状态
// 以群聊消息为例
const status = 2;  // 将会话状态设置为免打扰 
const conversationID = '';
const conversationType = 2;  // 会话类型为群聊
zim.setConversationNotificationStatus(status, conversationID, conversationType)
    .then((res: ZIMConversationNotificationStatusSetResult) => {
        // 操作成功
    })
    .catch((err: ZIMError) => {
        // 操作失败
    });示例代码
// 将某个会话设置成消息免打扰状态
ZIM.GetInstance().SetConversationNotificationStatus(ZIMConversationNotificationStatus.DoNotDisturb, "CONV_ID",
    ZIMConversationType.Group, (string conversationID, ZIMConversationType conversationType,
        ZIMError errorInfo) =>
    {
        // 设置消息免打扰的结果
    });// 将某个会话设置成消息免打扰状态
ZIM.GetInstance().SetConversationNotificationStatus(ZIMConversationNotificationStatus.DoNotDisturb, "CONV_ID",
    ZIMConversationType.Group, (string conversationID, ZIMConversationType conversationType,
        ZIMError errorInfo) =>
    {
        // 设置消息免打扰的结果
    });示例代码
// 将某个会话设置成消息免打扰状态
// 以群聊会话为例
ZIM
    .getInstance()
    !.setConversationNotificationStatus(
        ZIMConversationNotificationStatus.doNotDisturb,
        'conversationID',
        ZIMConversationType.group)
    .then((value) => {})
    .catchError((onError) {});// 将某个会话设置成消息免打扰状态
// 以群聊会话为例
ZIM
    .getInstance()
    !.setConversationNotificationStatus(
        ZIMConversationNotificationStatus.doNotDisturb,
        'conversationID',
        ZIMConversationType.group)
    .then((value) => {})
    .catchError((onError) {});获取免打扰状态
设置免打扰后,客户端本地存在该会话的操作端和多端在线设备都将会收到 onConversationChanged 通知事件,通过此事件的回调可以获取到会话免打扰状态。
离线设备重新登录后,可通过查询会话列表的 ZIMConversation.notificationStatus 属性获取会话免打扰状态。
// 1. 监听会话变更事件
public void onConversationChanged(ZIM zim, ArrayList<ZIMConversationChangeInfo> conversationChangeInfoList) {
    super.onConversationChanged(zim, conversationChangeInfoList);
    // conversationChangeInfoList.get(0).conversation.notificationStatus
}
// 2. 查询会话列表
ZIMConversationQueryConfig config = new ZIMConversationQueryConfig();
config.count = 10;
config.nextConversation = null;
zim.queryConversationList(config, new ZIMConversationListQueriedCallback() {
    @Override
    public void onConversationListQueried(ArrayList<ZIMConversation> conversationList, ZIMError errorInfo) {
        // 获取会话列表查询结果
        if(errorInfo.code == ZIMErrorCode.SUCCESS) {
          // conversationList.get(0).notificationStatus
        } else {
          // ......
        }      
    }
});// 1. 监听会话变更事件
public void onConversationChanged(ZIM zim, ArrayList<ZIMConversationChangeInfo> conversationChangeInfoList) {
    super.onConversationChanged(zim, conversationChangeInfoList);
    // conversationChangeInfoList.get(0).conversation.notificationStatus
}
// 2. 查询会话列表
ZIMConversationQueryConfig config = new ZIMConversationQueryConfig();
config.count = 10;
config.nextConversation = null;
zim.queryConversationList(config, new ZIMConversationListQueriedCallback() {
    @Override
    public void onConversationListQueried(ArrayList<ZIMConversation> conversationList, ZIMError errorInfo) {
        // 获取会话列表查询结果
        if(errorInfo.code == ZIMErrorCode.SUCCESS) {
          // conversationList.get(0).notificationStatus
        } else {
          // ......
        }      
    }
});// 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 {
      // ......
    }
}];// 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 {
      // ......
    }
}];// 1. 监听会话变更事件
void onConversationChanged(ZIM * zim, const std::vector<ZIMConversationChangeInfo> & conversationChangeInfoList) {
    // 获取会话变更列表
    for (auto &info : conversationChangeInfoList) {
        // info.conversation.notificationStatus
    }
}
// 2. 查询会话列表
ZIMConversationQueryConfig config;
config.count = 10;
config.nextConversation = nullptr;
zim->queryConversationList(config, [=](std::vector<std::shared_ptr<ZIMConversation>> conversationList, ZIMError errorInfo) {
    // 获取会话列表查询结果
    if(errorInfo.code == ZIMErrorCodeSuccess) {
        for (auto &info : conversationList) {
          // info.notificationStatus
        }
    } else {
      // ......
    }
});// 1. 监听会话变更事件
void onConversationChanged(ZIM * zim, const std::vector<ZIMConversationChangeInfo> & conversationChangeInfoList) {
    // 获取会话变更列表
    for (auto &info : conversationChangeInfoList) {
        // info.conversation.notificationStatus
    }
}
// 2. 查询会话列表
ZIMConversationQueryConfig config;
config.count = 10;
config.nextConversation = nullptr;
zim->queryConversationList(config, [=](std::vector<std::shared_ptr<ZIMConversation>> conversationList, ZIMError errorInfo) {
    // 获取会话列表查询结果
    if(errorInfo.code == ZIMErrorCodeSuccess) {
        for (auto &info : conversationList) {
          // info.notificationStatus
        }
    } else {
      // ......
    }
});// 1. 监听会话变更事件
zim.on('conversationChanged', (zim: ZIM, data: ZIMEventOfConversationChangedResult) => {
    console.log(data.infoList[0].conversation.notificationStatus);
});
// 2. 查询会话列表
const config: ZIMConversationQueryConfig = { count: 10, nextConversation: null };
zim.queryConversationList(config, null)
    .then((res: ZIMConversationListQueriedResult) => {
        // 查询成功
        console.log(res.conversationList[0].notificationStatus);
    })
    .catch((err: ZIMError) => {
        // 查询失败
    });// 1. 监听会话变更事件
zim.on('conversationChanged', (zim: ZIM, data: ZIMEventOfConversationChangedResult) => {
    console.log(data.infoList[0].conversation.notificationStatus);
});
// 2. 查询会话列表
const config: ZIMConversationQueryConfig = { count: 10, nextConversation: null };
zim.queryConversationList(config, null)
    .then((res: ZIMConversationListQueriedResult) => {
        // 查询成功
        console.log(res.conversationList[0].notificationStatus);
    })
    .catch((err: ZIMError) => {
        // 查询失败
    });// 1. 监听会话变更事件
ZIM.GetInstance().onConversationChanged = (
    ZIM zim, List<ZIMConversationChangeInfo> conversationChangeInfoList) =>
{
    // 会话变更通知
};
// 2. 查询会话列表
ZIMConversationQueryConfig config = new ZIMConversationQueryConfig();
config.count = 10;
config.nextConversation = null;
// 拉取会话列表
ZIM.GetInstance().QueryConversationList(config, (List<ZIMConversation> conversationList,
                   ZIMError errorInfo) => 
{
        // 拉取结果的回调           
});// 1. 监听会话变更事件
ZIM.GetInstance().onConversationChanged = (
    ZIM zim, List<ZIMConversationChangeInfo> conversationChangeInfoList) =>
{
    // 会话变更通知
};
// 2. 查询会话列表
ZIMConversationQueryConfig config = new ZIMConversationQueryConfig();
config.count = 10;
config.nextConversation = null;
// 拉取会话列表
ZIM.GetInstance().QueryConversationList(config, (List<ZIMConversation> conversationList,
                   ZIMError errorInfo) => 
{
        // 拉取结果的回调           
});// 1. 监听会话变更事件
ZIMEventHandler.onConversationChanged = (ZIM zim, List<ZIMConversationChangeInfo> conversationChangeInfoList){
    // conversationChangeInfoList[0].conversation.notificationStatus 
};
// 2. 查询会话列表
ZIMConversationQueryConfig config = ZIMConversationQueryConfig();
config.count = 10;
config.nextConversation = null;
ZIM
    .getInstance()
    !.queryConversationList(config)
    .then((res) => {
      // res.conversationList[0].notificationStatus
    })
    .catchError((onError) {});// 1. 监听会话变更事件
ZIMEventHandler.onConversationChanged = (ZIM zim, List<ZIMConversationChangeInfo> conversationChangeInfoList){
    // conversationChangeInfoList[0].conversation.notificationStatus 
};
// 2. 查询会话列表
ZIMConversationQueryConfig config = ZIMConversationQueryConfig();
config.count = 10;
config.nextConversation = null;
ZIM
    .getInstance()
    !.queryConversationList(config)
    .then((res) => {
      // res.conversationList[0].notificationStatus
    })
    .catchError((onError) {});


