跳到主要内容

设置指定群/频道免打扰

本文描述如何为指定超级群会话(targetId)或指定频道(channelId)设置免打扰级别。

提示

即时通讯客户端 SDK 支持多维度、多级别的免打扰设置。

  • App 开发者可实现从 App Key、指定细分业务(仅超级群)、用户级别多个维度的免打扰功能配置。在融云服务端决定是否触发推送通知时,不同维度的优先级如下:用户级别设置 > 指定超级群频道的默认配置(仅超级群支持) > 指定超级群会话的默认配置(仅超级群支持) > App Key 级设置
  • 用户级别设置下包含多个细分维度。在融云服务端决定是否触发推送通知时,如存在用户级别配置,不同细分维度的优先级如下:全局免打扰 > 按频道设置的免打扰 > 按会话设置的免打扰。详见会话管理类别下的「免打扰功能概述」。

支持的免打扰级别

免打扰级别(notificationLevel)提供了针对不同 @ 消息的免打扰控制。从 SDK 5.3.0 开始,免打扰配置支持以下级别:

notificationLevel 的枚举值数值说明
NotificationLevel.ALL_MESSAGE-1全部消息均接收通知,即关闭免打扰功能
NotificationLevel.NOT_SET0未设置(用户未设置时为此状态,为全部消息都通知,在此状态下,如设置了超级群默认状态以超级群的默认设置为准)
NotificationLevel.AT_MESSAGE_NOTIFICATION1仅针对 @ 消息进行通知,包括 @指定用户 和 @所有人
NotificationLevel.AT_USER_NOTIFICATION2仅针对 @ 指定用户消息进行通知,且仅通知被 @ 的指定的用户进行通知
如:@张三 则张三可以收到推送,@所有人 时不会收到推送
NotificationLevel.AT_GROUP_ALL_USER_NOTIFICATION4仅针对 @群全员进行通知,只接收 @所有人 的推送信息
NotificationLevel.NOT_MESSAGE_NOTIFICATION5不接收通知,即使为 @ 消息也不推送通知

早于 5.3.0 的 SDK 版本仅支持设置为免打扰状态(不接收推送通知)或提醒状态(接收推送通知)。

设置免打扰级别

SDK 支持超级群用户为指定超级群会话(targetId)设置免打扰级别。调用 setConversationNotificationLevel 可设置免打扰级别。

注意:超级群业务暂不支持针对单个超级群会话所有消息设置免打扰级别(“所有消息”指所有频道中的消息和不属于任何频道的消息)。当前接口仅设置单个会话中不属于任何频道的消息的免打扰状态级别。

const conversationType = RongIMLib.ConversationType.ULTRA_GROUP;
const targetId = '超级群 ID';
const channelId = '超级群频道 ID';
const notificationLevel = RongIMLib.NotificationLevel.NOT_MESSAGE_NOTIFICATION

RongIMLib.setConversationNotificationLevel({
conversationType,
targetId,
channelId
}, notificationLevel).then(( {code} ) => {

})
参数类型必填说明
targetIdString超级群 ID
conversationTypeNumber会话类型,参考 ConversationType。。请注意超级群会话类型:如在 2022.09.01 之前开通超级群业务,默认不支持为单个超级群会话所有消息设置免打扰级别(“所有消息”指所有频道中的消息和不属于任何频道的消息)。该接口仅设置指定超级群会话(targetId)中不属于任何频道的消息的免打扰状态级别。如需修改请提交工单。
notificationLevelNumber免打扰级别。详见上文支持的免打扰级别notificationLevel 的说明。
channelIdString超级群的会话频道 ID。
  • 如果传入频道 ID,则针对该指定频道设置消息免打扰级别。
  • 注意:如果不指定频道 ID,则仅针对指定超级群会话(targetId)中不属于任何频道的消息设置免打扰状态级别。

获取免打扰级别

调用 getConversationNotificationLevel 获取免打扰级别

const conversationType = RongIMLib.ConversationType.ULTRA_GROUP;
const targetId = '超级群 ID';
const channelId = '超级群频道 ID';

RongIMLib.getConversationNotificationLevel({
conversationType,
targetId,
channelId
}).then(({ code, data }) => {

})
参数类型必填说明
targetIdString超级群 ID
conversationTypeNumber会话类型,参考 ConversationType
channelIdString超级群频道 ID