超级群免打扰功能概述
「免打扰功能」用于控制用户在客户端设备离线时,是否可针对离线消息接收推送通知。
- 客户端为离线状态:会话中有新离线消息时,用户默认通过推送通道收到消息且默认弹出通知。设置免打扰后,融云服务端不会为相关消息触发推送。
- 客户端在后台运行:会话中有新消息时,用户直接收到消息。如果使用 IMLib,您需要自行判断 App 是否在后台运行,并根据业务需求自行实现本地通知弹窗。
如果不需要接收推送,可以通过设置 SDK 的初始化配置中的 enablePush
参数为 false
,向融云服务申请禁用推送服务(当前设备)。您也可以在断开连接时设置不接收推送(当前设备)。
免打扰设置维度
客户端 SDK 支持超级群业务进行以下多个维度的免打扰设置:
- App 的免打扰设置
- 按超级群或频道设置默认免打扰级别
- 按指定 会话类型设置免打扰级别
- 按会话设置免打扰级别
- 按超级群频道设置免打扰级别
- 全局免打扰
超级群离线消息推送通知还会收到控制台超级群默认推送频率设置影响。详见开通超级群服务。
App 的免打扰设置
以 App Key 为单位,设置整个应用所有用户的默认免打扰级别。默认未设置,等同于全部消息都接收通知。该级别的配置暂未在控制台开放,如有需要,请提交工单。
- 全部消息均通知:当前 App 下的用户可针对任何消息接收推送通知。
- 未设置:默认全部消息都通知。
- 仅 @ 消息通知:当前 App 下的用户仅针对提及(@)当前用户和提及所在群组全体成员的消息接收推送通知。
- 仅 @ 指定用户通知:当前 App 下,用户仅针对提及(@)当前用户的消息接收推送通知。例如:仅张三会接收且仅接收 “@张三 Hello” 的消息的通知。
- 仅 @群全员通知:当前 App 下,用户仅针对提及(@)群组全体成员的消息接收推送通知。
- 都不接收通知:当前 App 下,用户不针对任何消息接收推送通知,即任何离线消息都不会触发推送通知。
- 除 @ 消息外群聊消息不发推送:当前 App 下,用户针对单聊消息、提及(@)指定用户的消息、和提及(@)群组全体成员的消息接收推送通知。
融云服务端判断是否需要推送时,如果存在以下任何一种用户级别的免打扰配置,以用户级别配置为准:
- 按指定会话类型设置免打扰级别
- 按会话设置免打扰级别
- 全局免打扰
如果不存在用户级别配置,则以消息所属超级群/频道的默认免打扰级别为准。App 级别的免打扰配置的优先级最低。
按超级群/频道设置默认免打扰级别
客户端 SDK 支持为指定超级群下的所有成员配置触发推送通知的消息类别,或完全关闭通知。客户端 SDK 提供 PushNotificationLevel
,支持以下六个级别:
枚举值 | 数值 | 说明 |
---|---|---|
PUSH_NOTIFICATION_LEVEL_ALL_MESSAGE | -1 | 与融 云服务端断开连接后,当前超级群的所有用户可针对指定超级群(或频道)中的所有消息接收通知。 |
PUSH_NOTIFICATION_LEVEL_DEFAULT | 0 | 未设置。未设置时均为此初始状态。在此状态下,如果超级群与群频道均为未设置,则认为超级群与频道的默认免打扰级别为全部消息都通知。 |
PUSH_NOTIFICATION_LEVEL_MENTION | 1 | 与融云服务端断开连接后,当前超级群的所有用户仅针对指定超级群(或频道)中提及(@)当前用户和全体群成员的消息接收通知。 |
PUSH_NOTIFICATION_LEVEL_MENTION_USERS | 2 | 与融云服务端断开连接后,当前用户仅针对指定超级群(或频道)中提及(@)当前用户的消息接收通知。例如:张三只会接收 “@张三 Hello” 的消息的通知。 |
PUSH_NOTIFICATION_LEVEL_MENTION_ALL | 4 | 与融云服务端断开连接后,当前用户仅针对指定超级群(或频道)中提及(@)全部群成员的消息接收通知。 |
PUSH_NOTIFICATION_LEVEL_BLOCKED | 5 | 当前用户针对指定超级群(或频道)中的任何消息都不接收推送通知。 |
具体设置方法详见设置群/频道默认免打扰。
为指定的超级群设置的默认免打扰逻辑,自动适用于群下的所有频道。如果针对频道另行设置了默认免打扰逻辑,则以该频道的默认 设置为准。融云服务端判断是否需要为用户发送推送通知时,如果同时存在以下任何一种用户级别的免打扰配置,以下列配置为准:
- 按会话类型设置免打扰级别
- 按会话设置免打扰级别
- 按超级群频道设置免打扰级别
- 全局免打扰
按会话类型设置免打扰级别
客户端 SDK 从 5.2.2.1 开始支持该功能。该功能属于用户级别设置。
客户端 SDK 提供 PushNotificationLevel
,允许用户为会话类型(单聊、群聊、超级群、系统会话)配置触发推送通知的消息类别,或完全关闭通知。提供以下六个级别:
枚举值 | 数值 | 说明 |
---|---|---|
PUSH_NOTIFICATION_LEVEL_ALL_MESSAGE | -1 | 与融云服务端断开连接后,当前用户可针对指定类型会话中的所有消息接收通知。 |
PUSH_NOTIFICATION_LEVEL_DEFAULT | 0 | 未设置。未设置时均为此初始状态。 注意:在此状态下,如果超级群与群频道均为未设置,则认为超级群与频道的默认免打扰级别为全部消息都通知。 |
PUSH_NOTIFICATION_LEVEL_MENTION | 1 | 与融云服务端断开连接后,当前用户仅针对指定类型的会话中提及(@)当前用户和全体群成员的消息接收通知。 |
PUSH_NOTIFICATION_LEVEL_MENTION_USERS | 2 | 与融云服务端断开连接后,当前用户仅针对指定类型的会话中提及(@)当前用户的消息接收通知。例如:张三只会接收 “@张三 Hello” 的消息的通知。 |
PUSH_NOTIFICATION_LEVEL_MENTION_ALL | 4 | 与融云服务端断开连接后,当前用户仅针对指定类型的会话中提及(@)全部群成员的消息接收通知。 |
PUSH_NOTIFICATION_LEVEL_BLOCKED | 5 | 当前用户针对指定类型的会话中的任何消息都不接收推送通知。 |
具体设置方法详见按会话类型设置免打扰。
融云服务端判断是否需要为用户发送推送通知时,如果同时存在以下任何一种用户级别的免打扰配置,以下列配置为准:
- 按会话设置免打扰级别
- 按超级群频道设置免打扰级别
- 全局免打扰
按会话设置免打扰级别
客户端 SDK 从 5.2.2 开始支持该功能。该功能属于用户级别设置。
客户端 SDK 提供 PushNotificationLevel
,允许用户为会话配置触发通知的消息类别,或完全关闭通知。提供以下六个级别:
枚举值 | 数值 | 说明 |
---|---|---|
PUSH_NOTIFICATION_LEVEL_ALL_MESSAGE | -1 | 与融云服务端断开连接后,当前用户可针对指定类型会话中的所有消息接收通知。 |
PUSH_NOTIFICATION_LEVEL_DEFAULT | 0 | 未设置。未设置时均为此初始状态。 注意:在此状态下,如果超级群与群频道均为未设置,则认为超级群与频道的默认免打扰级别为全部消息都通知。 |
PUSH_NOTIFICATION_LEVEL_MENTION | 1 | 与融云服务端断开连接后,当前用户仅针对指定会话中提及(@)当前用户和全体群成员的消息接收通知。 |
PUSH_NOTIFICATION_LEVEL_MENTION_USERS | 2 | 与融云服务端断开连接后,当前用户仅针对接收指定会话中提及(@)当前用户的消息接收通知。例如:张三只会接收 “@张三 Hello” 的消息的通知。 |
PUSH_NOTIFICATION_LEVEL_MENTION_ALL | 4 | 与融云服务端断开连接后,当前用户仅针对指定会话中提及(@)全部群成员的消息接收通知。 |
PUSH_NOTIFICATION_LEVEL_BLOCKED | 5 | 当前用户针对指定会话中的任何消息都不接收推送通知。 |
具体设置方法详见按会话设置免打扰。
从 2022.09.01 开始,为指定的超级群设置的免打扰级别,自动适用于群下的所有频道。融云服务端判断是否需要为用户发送推送通知时,如果同时存在以下任何一种用户级别的免打扰配置,以下列配置为准:
- 按超级群频道设置免打扰级别
- 全局免打扰