免打扰
Global IM UIKit 支持免打扰功能。会话免打扰功能开箱即用,支持通过 UI 操作 或 Global IM UIKit 的 API 控制。如果需要全局免打扰,可通过 IMLib SDK 的 API 实现。
免打扰状态将会被同步到服务端,融云会为用户自动在设备间同步免打扰状态数据。
设置会话免打扰
Global IM UIKit 允许用户在 UI 上设置会话为免打扰状态。设置成功后,如果用户在线时收到新的消息,仍可以收到消息内容,但 Global IM UIKit 不会发出铃声或通知栏提醒。如果客户端为离线状态,系统将不会收到远程通知提醒。
通过 UI 更改会话免打扰状态
Global IM UIKit 在 UI 中实现了两种更改会话免打扰状态的方法。会话列表中处于免打扰状态的会话未读数置灰展示。
- 会话列表中,可以长按单个会话,展示免打扰开关
- 会话页面中,展开更多选项,展示免打扰开关
通过 API 更改会话免打扰状态
Global IM UIKit 在 RCChatListViewModel
中提供了控制会话免打扰状态的 API。推荐使用 RCChatListViewModel
提供的 toggleNotification:
和 setNotificationLevel:forChatModels:
接口,Global IM UIKit 内部会处理 IMLib SDK 层的接口调用和页面刷新。
设置会话免打扰级别
Global IM UIKit 的 免打扰功能默认仅支持实现提醒或不提醒。IMLib SDK 提供更精细的免打扰控制能力(例如,仅接收 @所有人的提醒),您可以使用 IMLib 的 API 设置和查询免打扰状态。
请移步至 IMLib SDK 文档按会话设置免打扰。
如果使用 IMLib SDK 能力,请使用 ChannelClient
中的 API。
设置全局免打扰
全局免打扰功能支持设置一个从任意时间点(HH:MM:SS
)开始的免打扰时间窗口。在再次设置或删除用户免打扰时间段之前,当次设置的免打扰时间窗口会每日重复生效。例如,App 用户希望设置永久全天免打扰,可设置 startTime
为 00:00:00
,period
为 1439
。
Global IM UIKit 未直接在 UI 或 API 层提供设置入口。您需要使用 IMLib SDK 中的方法设置全局免打扰时段。
请移步至 IMLib SDK 文档设置全局免打扰。
/android-imlib/notification/do-not-disturb
如果使用 IMLib SDK 能力,请使用 ChannelClient
中的 API。推荐支持同时配置「免打扰级别」的接口。