免打扰功能概述
即时通讯客户端 SDK 支持多维度、多级别精细化的免打扰设置。
在免打扰设置生效时,客户端收到新消息时行为如下:
- 客户端在后台运行:会话中有新消息时,将不会进行通知提醒,但可以收到消息内容。
- 客户端为离线状态:会话中有新消息时,不会收到远程通知提醒,再次上线时可收取消息内容。
IM 的免打扰设置维度
即时通讯业务支持对免打扰功能进行多维度地控制。开发者可从 App Key、特定的 IM 细分业务(目前仅超级群)、用户级别进行免打扰功能配置。
融云服务端会遵照以下优先级搜索免打扰配置,判断当前消息是否需要触发推送:用户级别设置 > 指定超级群频道的默认配置 > 指定超级群会话的默认配置 > App Key 级设置。
免打扰配置的维度 | 适用场景 | 说明 | 客户端 API | 服务端 API |
---|---|---|---|---|
App Key 级设置 | 单聊、群聊、超级群 | 以 App Key 为单位,设置整个应用的默认免打扰级别。默认未设置,等同于全部消息都接收通知。该级别的配置暂未在控制台开放,如有需要,请提交工单。 | 客户端 SDK 不提供 API。 | 服务端不提供该 API。 |
指定超级群默认设置 | 仅限超级群业务 | 可为指定的超级群设置默认的免打扰级别。 | 详见「超级群管理」下的设置群/频道默认免打扰。 | 详见「超级群管理」下的设置群/频道默认免打扰 |
指定超级群频道的默认设置 | 仅限超级群业务 | 可为指定的超级群设置默认的免打扰级别。 | 详见「超级群管理」下的设置群/频道默认免打扰。 | 详见「超级群管理」下的设置群/频道默认免打扰 |
用户级设置 | 单聊、群聊、超级群 | 用户级别免打扰设置如下(优先级从高到低):
在融云服务端判断是否需要推送通知时,如存在用户级别免打扰配置,则遵照以上优先级判断是否需要推送。 |
|
支持的免打扰级别
免打扰级别提供了针对不同 @ 消息的免打扰控制。
免打扰级别定义在RCIMPushNotificationLevel枚举中。
支持以下级别
枚举值 | 数值 | 说明 |
---|---|---|
RCIMPushNotificationLevel.ALL_MESSAGE | 0 | 所有消息均可进行通知。 |
RCIMPushNotificationLevel.NONE | 1 | 未设置。未设置时均为此初始状态。 注意:在此状态下,如果超级群与群频道均为未设置,则认为超级群与频道的默认免打扰级别为全部消息都通知。 |
RCIMPushNotificationLevel.MENTION | 2 | 仅针对 @ 消息进行通知,包括 @指定用户 和 @所有人 |
RCIMPushNotificationLevel.MENTION_USERS | 3 | 仅针对 @ 指定用户消息进行通知,且仅针对被 @ 的指定的用户进行通知。 如:@张三,则张三可以收到推送; @所有人不会触发推送通知。 |
RCIMPushNotificationLevel.MENTION_ALL | 4 | 仅针对 @群全员进行通知,即只接收 @所有人的推送信息。 |
RCIMPushNotificationLevel.BLOCKED | 5 | 不接收通知,即使为 @ 消息也不推送通知。 |