From 831776f7dda89ba4ae84bc2c3fcfe8c55e58955b Mon Sep 17 00:00:00 2001 From: Jason Date: Thu, 24 Feb 2022 12:10:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A5=BD=E5=8F=8B=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E5=80=99=EF=BC=8C=E5=AF=B9=E6=96=B9=E4=B9=9F=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E4=BC=9A=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/im/group/chat.vue | 1 - utils/im/listeners.js | 33 ++++++++++++++++++++------------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/pages/im/group/chat.vue b/pages/im/group/chat.vue index d5a3aa2..ac1260c 100644 --- a/pages/im/group/chat.vue +++ b/pages/im/group/chat.vue @@ -119,7 +119,6 @@ initGroupInfo() { // 获取群信息,成员数量,设置标题 getGroupBase(this.targetId).then(res => { - this.$store.dispatch('updateContact', res) uni.setNavigationBarTitle({ title: res.name + `(${res.members})` }) diff --git a/utils/im/listeners.js b/utils/im/listeners.js index 0555ba7..ecd4614 100644 --- a/utils/im/listeners.js +++ b/utils/im/listeners.js @@ -67,7 +67,7 @@ const imLibListeners = () => { // 添加消息监听函数 IMLib.addReceiveMessageListener((res) => { const message = res.data.message - console.error('[收到消息]',IMLib.ObjectName.GroupNotification, message) + console.error('[收到消息]', message) checkContactExists(message) if (utils.inArray(message.objectName, notifyMsgTypes)) { onReceiveMessage(message) @@ -78,29 +78,36 @@ const imLibListeners = () => { // 调用完更新之后,删除这条消息 IMLib.deleteMessagesByIds([message.messageId]) } else if (message.objectName === IMLib.ObjectName.ContactNotification) { - // 触发一个新好友的通知事件,【会话列表,通讯录,新朋友】页面 - uni.$emit('onNewContactConversation', message) - uni.$emit('onNewContactFriends', message) - uni.$emit('onNewContactPendings', message) - } else if (message.objectName === IMLib.ObjectName.GroupNotification) { - console.log('踢出用户',message); + if (message.content.operation === 'Request') { + // 触发一个新好友的通知事件,【会话列表,通讯录,新朋友】页面 + uni.$emit('onNewContactConversation', message) + uni.$emit('onNewContactFriends', message) + uni.$emit('onNewContactPendings', message) + } else if (message.content.operation === 'Delete') { + console.log('解除好友关系', message.targetId); + IMLib.cleanHistoryMessages(1, message.targetId, message.sentTime, false) + // 解散了就删了吧 + IMLib.removeConversation(1, message.targetId) + // 刷新会话列表 + uni.$emit('onReceiveMessage', message) + } + } else if (message.objectName === IMLib.ObjectName.GroupNotification) { // 解散群 if (message.content.operation === 'Dismiss') { - IMLib.cleanHistoryMessages(message.conversationType, message.targetId, message.sentTime, + IMLib.cleanHistoryMessages(3, message.targetId, message.sentTime, false) // 解散了就删了吧 - IMLib.removeConversation(message.conversationType, message.targetId) + IMLib.removeConversation(3, message.targetId) // 发布群解散的消息 uni.$emit('onGroupDismiss') uni.$emit('onGroupDismiss_' + message.targetId) - } else if (message.content.operation === 'REMOVE') { - console.log('踢出', message.content); + } else if (message.content.operation === 'REMOVE') { // 要判断是否当前用户,然后把当前用户踢出到主页去, 删除聊天记录,会话列表 if (message.content.extra == store.getters.sender.userId) { - IMLib.cleanHistoryMessages(message.conversationType, message.targetId, message.sentTime, + IMLib.cleanHistoryMessages(3, message.targetId, message.sentTime, false) // 解散了就删了吧 - IMLib.removeConversation(message.conversationType, message.targetId) + IMLib.removeConversation(3, message.targetId) // 为了更新群列表 uni.$emit('onGroupDismiss') uni.$emit('onGroupRemoveYou_' + message.targetId)