跳到主要内容

按会话类型设置免打扰

本文描述如何为指定类型(conversationType)的会话设置免打扰级别。

提示

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

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

在免打扰设置生效时,客户端收到新消息时行为如下:

  • 客户端在后台运行:会话中有新消息时,可以收到消息内容。您需要自行实现本地通知弹窗。
  • 客户端为离线状态:会话中有新消息时,不会收到远程通知提醒,再次上线时可收取消息内容。

支持的免打扰级别

免打扰级别提供了针对不同 @ 消息的免打扰控制。从 SDK 5.2.2.1 开始,指定会话类型的免打扰配置支持以下级别:

枚举值数值说明
RCPushNotificationLevelAllMessage-1所有消息均可进行通知。
RCPushNotificationLevelDefault0未设置。未设置时均为此初始状态。

注意:在此状态下,如果超级群与群频道均为未设置,则认为超级群与频道的默认免打扰级别为全部消息都通知。
RCPushNotificationLevelMention1仅针对 @ 消息进行通知,包括 @指定用户 和 @所有人
RCPushNotificationLevelMentionUsers2仅针对 @ 指定用户消息进行通知,且仅针对被 @ 的指定的用户进行通知。

如:@张三,则张三可以收到推送; @所有人不会触发推送通知。
RCPushNotificationLevelMentionAll4仅针对 @群全员进行通知,即只接收 @所有人的推送信息。
RCPushNotificationLevelBlocked5不接收通知,即使为 @ 消息也不推送通知。

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

管理会话类型的免打扰级别

从 SDK 5.2.2.1 版本开始,支持在即时通讯业务中由用户(userId)为指定类型的会话(conversationType)设置免打扰级别,支持单聊、群聊、超级群会话。

设置指定会话类型免打扰级别

提示

该接口在 RCChannelClient 中,从 5.2.2.1 版本开始支持。

为用户设置指定会话类型(conversationType)的免打扰级别,支持单聊、群聊、超级群会话。

[[RCChannelClient sharedChannelManager] setConversationTypeNotificationLevel:"会话类型"
level:RCPushNotificationLevelDefault
success:^() {}
error:^(RCErrorCode status) {}];
参数类型说明
conversationTypeRCConversationType会话类型。不支持聊天室类型,因为聊天室默认就是不接受消息提醒的。
levelRCPushNotificationLevel
  • -1: 全部消息通知
  • 0: 未设置(用户未设置情况下,默认以群 或者 APP级别的默认设置为准,如未设置则全部消息都通知)
  • 1: 仅针对 @ 消息进行通知
  • 2: 仅针对 @ 指定用户进行通知

    如:@张三 则张三可以收到推送,@所有人 时不会收到推送。

  • 4: 仅针对 @ 群全员进行通知,只接收 @所有人 的推送信息。
  • 5: 不接收通知
successBlockblock回调接口
errorBlockblock回调接口

移除指定会话类型的免打扰级别

如需移除指定会话类型的免打扰级别设置,请调用设置接口,并将 level 参数传入 RCPushNotificationLevelDefault。

查询指定会话类型的免打扰级别

提示

该接口在 RCChannelClient 中,从 5.2.2.1 版本开始支持。

查询当前用户为指定会话类型(conversationType)设置的免打扰级别。

[[RCChannelClient sharedChannelManager] getConversationTypeNotificationLevel:"会话类型"
success:^(RCPushNotificationLevel level) {}
error:^(RCErrorCode status) {}];
参数类型说明
conversationTypeRCConversationType会话类型。不支持聊天室类型,因为聊天室默认就是不接受消息提醒的。
levelRCPushNotificationLevel
  • -1: 全部消息通知
  • 0: 未设置(用户未设置情况下,默认以群 或者 APP级别的默认设置为准,如未设置则全部消息都通知)
  • 1: 仅针对 @ 消息进行通知
  • 2: 仅针对 @ 指定用户进行通知

    如:@张三 则张三可以收到推送,@所有人 时不会收到推送。

  • 4: 仅针对 @ 群全员进行通知,只接收 @所有人 的推送信息。
  • 5: 不接收通知
successBlockblock回调接口
errorBlockblock回调接口