多端同步免打扰/置顶
SDK 提供了会话状态(置顶或免打扰)同步机制,通过设置会话状态同步监听器,当在其它端修改会话状态时,可在本端实时监听到会话状态的改变。
实现此功能需要遵守 RCConversationStatusChangeDelegate
协议。
设置代理委托
[[RCIMClient sharedRCIMClient] setRCConversationStatusChangeDelegate:self];
代理方法
@protocol RCConversationStatusChangeDelegate <NSObject>
/**
IMLib 会话状态同步的回调
@param conversationStatusInfos 改变过的会话状态的数组
*/
- (void)conversationStatusDidChange:(NSArray<RCConversationStatusInfo *> *)conversationStatusInfos;
@end
RCConversationStatusInfo 说明
参数 | 类型 | 说明 |
---|---|---|
conversationType | RCConversationType | 会话类型 |
targetId | NSString | 会话 ID |
channelId | NSString | 所属会话的业务标识 |
conversationStatusType | RCConversationStatusType | 会话状态改变的类型(RCConversationStatusType_Mute = 1//免打扰; RCConversationStatusType_Top = 2//置顶) |
conversationStatusvalue | int | 会话状态改变的值,详见 conversationStatusvalue 说明 |
notificationLevel | RCPushNotificationLevel | 会话免打扰类型,详见 RCPushNotificationLevel 说明 |
-
conversationStatusvalue
说明-
如果 conversationStatusType == RCConversationStatusType_Mute,conversationStatusvalue = 1 是提醒,conversationStatusvalue = 0 是免打扰。
-
如果 conversationStatusType == RCConversationStatusType_Top,conversationStatusvalue = 0 是不置顶,conversationStatusvalue = 1 是置顶。
-
-
RCPushNotificationLevel
说明当 conversationStatusType = RCConversationStatusType_Mute 时,notificationLevel 值为有效值。
typedef NS_ENUM(NSInteger, RCPushNotificationLevel) {
/*!
全部消息通知(接收全部消息通知 -- 显示指定关闭免打扰功能)
@discussion 超级群设置全部消息通知时
@ 消息一定收到推送通知
普通消息的推送频率受到超级群服务端默认推送频率设置的影响,无法做到所有普通消息都通知
*/
RCPushNotificationLevelAllMessage = -1,
/*!
未设置(向上查询群或者APP级别设置),存量数据中0表示未设置
*/
RCPushNotificationLevelDefault = 0,
/*!
群聊,超级群 @所有人 或者 @成员列表有自己 时通知;单聊代表消息不通知
*/
RCPushNotificationLevelMention = 1,
/*!
群聊,超级群 @成员列表有自己时通知,@所有人不通知;单聊代表消息不通知
*/
RCPushNotificationLevelMentionUsers = 2,
/*!
群聊,超级群 @所有人通知,其他情况都不通知;单聊代表消息不通知
*/
RCPushNotificationLevelMentionAll = 4,
/*!
消息通知被屏蔽,即不接收消息通知
*/
RCPushNotificationLevelBlocked = 5,
};