请选择 进入手机版 | 继续访问电脑版
查看: 451|回复: 0

为什么退群、被踢、解散群之后无法删除相应群组会话?

[复制链接]

21

主题

59

帖子

212

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
212
发表于 2018-3-21 11:39:43 | 显示全部楼层 |阅读模式
IM SDK在主动退群、被踢、解散群之后,会收到一条相应类型的群组通知,并且相关会话信息仍然会保留,只是此后不能再接收关于此群的消息。
如果在收到相应的群组通知之前将会话删除,则收到群组通知后,SDK会重建对应会话。因此,若需彻底删除群组会话,正确时机是收到相应类型的群组通知之后
[注意] 删除会话并不会自动删除会话对应的历史消息,如需删除,另请参考:IM怎么删除消息IM怎么清空消息
下列内容为处理相关群组通知的介绍。
  • Windows (C)
    通过nim_team_reg_team_event_cb注册全局回调函数nim_team_event_cb_func来接收群组通知,回调的notification_id(通知类型)由nim_msglog_def.h中的NIMNotificationId枚举定义。
  • Android
    Android群组通知是消息类型为notification的IMMessage,带有一个消息附件,通知类型由NotificationType枚举定义。
    • 通过IMMessage的getMsgType()方法获取消息类型;
    • 通过IMMessage的getAttachment()方法得到消息附件对象,将其强转为NotificationAttachment,再通过其getType()方法获取通知类型。
    • 通过IMMessage的getFromAccount()方法获取操作者;
    • 通过IMMessage的getSessionId()方法获取群id。
    另外,具体的通知类型和附件类型为:
    • 主动退群的通知类型为:LeaveTeam
    • 被踢的通知类型为:KickMember,附件类型为:MemberChangeAttachment(通过IMMessage的getAttachment()方法强转为MemberChangeAttachment,再通过其getTargets()方法得到被踢成员的List。)
    • 解散群的通知类型为:DismissTeam
  • iOS
    iOS群组通知类型可以通过NIMTeamNotificationContent的operationType解析(通知类型由NIMTeamOperationType枚举定义)。
    群组通知的解析步骤,请查阅开发指南,文档路径: 文档首页 > IM > SDK开发集成 > iOS开发集成 > 群组功能 > 群组通知。
  • Web
    群通知消息是消息类型的一种,群通知消息对应的消息对象的attach字段中,type字段表示群通知消息的类型。
    群通知消息的解析步骤,请查阅开发指南,文档路径: 文档首页 > IM > SDK开发集成 > Web开发集成 > 消息收发 > 群通知消息。
    • 主动退群后,会收到一条类型为'leaveTeam'的群通知消息。其中from字段表示退群者的帐号,to字段表示群ID,attach中team表示对应的群对象。
    • 被踢后,会收到一条类型为'removeTeamMembers'的群通知消息。其中from字段表示踢人者的帐号,to字段表示群ID,attach中team表示对应的群对象,accounts表示被踢者的帐号列表。
    • 解散群后,会收到一条类型为'dismissTeam'的群通知消息。其中from字段表示解散者的帐号,to字段表示群ID。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表