Skip to content
v1
文档/iOS SDK/群组

监听群资料与禁言变更

当群名称、群头像、群简介、群公告、群全部禁言、群成员禁言状态发生变化时,SDK 会通过群组监听回调通知接入方。

接口

objc
- (void)addDiscussionListener:(id<BIMDiscussionListener>)listener;
- (void)removeDiscussionListener:(id<BIMDiscussionListener>)listener;

回调

objc
/// 群资料发生变更(群名称、群头像、群简介、群公告发生变化时回调)
- (void)onDiscussionProfileChanged:(NSString * _Nullable)discussionID
                        discussion:(BIMDiscussion *)discussion
                     changedFields:(NSArray<BIMDiscussionProfileField> *)changedFields;

/// 群资料发生变更(会直接返回每个变化字段的新值)
- (void)onDiscussionProfileChanged:(NSString * _Nullable)discussionID
                        discussion:(BIMDiscussion *)discussion
                   changedInfoList:(NSArray<BIMDiscussionProfileChangeInfo *> *)changedInfoList;

/// 群全部禁言状态发生变化
- (void)onAllDiscussionMembersMuted:(NSString * _Nullable)discussionID
                            isMuted:(BOOL)isMuted
                          muteUntil:(long long)muteUntil;

/// 群成员禁言状态发生变化,memberList 中的 muteUntil 表示对应成员的禁言截止时间
- (void)onDiscussionMemberMuteChanged:(NSString * _Nullable)discussionID
                            memberList:(NSArray<BIMDiscussionMember *> *)memberList;

变化字段

objc
BIMDiscussionProfileField const BIMDiscussionProfileFieldName;
BIMDiscussionProfileField const BIMDiscussionProfileFieldAvatar;
BIMDiscussionProfileField const BIMDiscussionProfileFieldIntro;
BIMDiscussionProfileField const BIMDiscussionProfileFieldNotice;

代码示例

swift
BIMManager.sharedInstance().addDiscussionListener(listener: self)
swift
func onDiscussionProfileChanged(discussionID: String?,
                                discussion: BIMDiscussion,
                                changedInfoList: [BIMDiscussionProfileChangeInfo]) {
    for info in changedInfoList {
        print("field=\(info.field), value=\(info.value ?? "")")
    }
}

func onAllDiscussionMembersMuted(discussionID: String?, isMuted: Bool, muteUntil: Int64) {
    print("discussionID=\(discussionID ?? ""), isMuted=\(isMuted), muteUntil=\(muteUntil)")
}

func onDiscussionMemberMuteChanged(discussionID: String?, memberList: [BIMDiscussionMember]) {
    for member in memberList {
        print("memberId=\(member.memberId), muteUntil=\(member.muteUntil)")
    }
}