全局免打扰
SDK 支持为当前用户设置全局免打扰时段与免打扰级别。
- 该接口会设置一个从任意时间点(
HH:MM:SS
)开始的免打扰时间窗口。在再次设置或删除用户免打扰时间段之前,当次设置的免打扰时间窗口会每日重复生效。例如,App 用户希望设置永久全天免打扰,可设置startTime
为00:00:00
,period
为1439
。 - 单个用户仅支持设置一个时间段,重复设置会覆盖该用户之前设置的时间窗口。
提示
在经 SDK 设置的全局免打扰时段内:
- 如果客户端处于离线状态,融云服务端将不会进行推送通知。
- 「全局免打扰时段」为用户级别的免打扰设置,且具有最高优先级。在用户设置了「全局免打扰时段」时,均以此设置的免打扰级别为准。
- Web 与 Electron 平台不接收推送通知,因此设置仅对移动设备生效。
- SDK 版本需 ≥ 5.14.0
设置免打扰时段与级别
为当前用户设置免打扰时间段时,可使用以下免打扰级别,参考 PushNotificationQuietHoursLevel:
枚举值 | 数值 | 说明 |
---|---|---|
PUSH_NOTIFICATION_QUIET_HOURS_LEVEL_DEFAULT | 0 | 未设置。如未设置,SDK 会依次查询消息所属群的用户级别免打扰设置及其他非用户级别设置,再判断是否需要推送通知。 |
PUSH_NOTIFICATION_QUIET_HOURS_LEVEL_MENTION_MESSAGE | 1 | 仅针对 @ 消息进行通知,包括 @指定用户 和 @所有人的消息。 |
PUSH_NOTIFICATION_QUIET_HOURS_LEVEL_BLOCKED | 5 | 不接收通知,即使为 @ 消息也不推送通知。 |
设置免打扰配置
通过 setNotificationQuietHoursWithSetting 接口设置消息通知免打扰时间。在免打扰时间内接收到消息时,会根据该接口设置的免打扰级别判断是否需要推送消息通知。
接口支通过定义 timezone
参数,设置时区。
js
RongIMLib.setNotificationQuietHoursWithSetting({
startTime: '21:00:00', // 免打扰开始时间,格式为 HH:mm:ss
spanMinutes: 1400, // 免打扰时间,单位为分钟
level: RongIMLib.PushNotificationQuietHoursLevel.PUSH_NOTIFICATION_QUIET_HOURS_LEVEL_DEFAULT,
// timezone: 'Asia/Shanghai' // 时区配置,可选值
}).then((res) => {
console.log(res.code)
})
查询免打扰配置
通过 getNotificationQuietHoursSetting 接口查询当前免打扰配置。
js
RongIMLib.getNotificationQuietHoursWithSetting().then((res) => {
if (res.code === 0) {
console.log(res.data)
}
})
移除免打扰配置
通过 removeNotificationQuietHoursSetting 接口移除当前免打扰配置。
js
RongIMLib.getNotificationQuietHoursWithSetting().then((res) => {
console.log(res.code)
})