diff --git a/pages/im/private/components/sentText.nvue b/pages/im/components/sentText.nvue similarity index 100% rename from pages/im/private/components/sentText.nvue rename to pages/im/components/sentText.nvue diff --git a/pages/im/private/components/sentVoice.nvue b/pages/im/components/sentVoice.nvue similarity index 100% rename from pages/im/private/components/sentVoice.nvue rename to pages/im/components/sentVoice.nvue diff --git a/pages/im/private/components/showImage.nvue b/pages/im/components/showImage.nvue similarity index 100% rename from pages/im/private/components/showImage.nvue rename to pages/im/components/showImage.nvue diff --git a/pages/im/private/components/showText.nvue b/pages/im/components/showText.nvue similarity index 100% rename from pages/im/private/components/showText.nvue rename to pages/im/components/showText.nvue diff --git a/pages/im/private/components/showVoice.nvue b/pages/im/components/showVoice.nvue similarity index 100% rename from pages/im/private/components/showVoice.nvue rename to pages/im/components/showVoice.nvue diff --git a/pages/im/private/chat.nvue b/pages/im/private/chat.nvue index c0bfd59..d6dd1b8 100644 --- a/pages/im/private/chat.nvue +++ b/pages/im/private/chat.nvue @@ -26,7 +26,7 @@ - + @@ -46,11 +46,11 @@ } from '@/utils/filters.js' import * as RongIMLib from "@/uni_modules/RongCloud-IMWrapper/js_sdk/index" import im from '@/utils/im/index.js' - import showVoice from './components/showVoice' - import showImage from './components/showImage' - import showText from './components/showText' - import sentText from './components/sentText' - import sentVoice from './components/sentVoice' + import showVoice from '../components/showVoice' + import showImage from '../components/showImage' + import showText from '../components/showText' + import sentText from '../components/sentText' + import sentVoice from '../components/sentVoice' const ChatList = uni.requireNativePlugin('dom') @@ -79,47 +79,44 @@ this.targetId = e.targetId this.conversationType = e.conversationType // 会话类型 this.userInfo = this.$store.getters.userInfo(this.targetId) + + // 获取消息列表 + this.initMessageList() + uni.setNavigationBarTitle({ - title: this.$store.getters.userInfo(this.targetId).name + title: this.userInfo.name }) - - RongIMLib.clearMessagesUnreadStatus(this.conversationType, this.targetId, new Date().getTime()) - im.setNotifyBadge() - RongIMLib.sendReadReceiptMessage(this.conversationType, this.targetId, new Date().getTime()) - - this.getMessageList() - - // 监听消息回执 - RongIMLib.addReadReceiptReceivedListener(({ - data - }) => { + // 监听消息已读状态 + uni.$on('onReadReceiptReceived', (data) => { if (data.targetId == this.targetId) { this.getMessageList() } }) - // 监听收到新消息,判断是否是当前会话,更新会话内容 uni.$on('onReceiveMessage', (msg) => { if (msg.targetId == this.targetId) { - RongIMLib.clearMessagesUnreadStatus(msg.conversationType, msg.targetId, msg.sentTime) - RongIMLib.sendReadReceiptMessage(msg.conversationType, msg.targetId, msg.sentTime) - this.getMessageList() - im.setNotifyBadge() + this.initMessageList() } }) }, beforeDestroy() { uni.$off('onReceiveMessage') }, - onUnload() { - RongIMLib.clearReadReceiptReceivedListener() - }, methods: { + initMessageList() { + this.getMessageList() + // 清理当前会话,未读消息数量 + RongIMLib.clearMessagesUnreadStatus(this.conversationType, this.targetId, new Date().getTime()) + // 发送消息已读状态给对方 + RongIMLib.sendReadReceiptMessage(this.conversationType, this.targetId, new Date().getTime()) + // 更新badge提醒数量 + im.setNotifyBadge() + }, customCN(val) { return timeCustomCN(val) }, - // 切换聊天类型 - msgType() { + // 切换聊天类型,语音/文本 + changeMessageType() { this.chatType = this.chatType === 1 ? 0 : 1 }, // 获取消息列表 diff --git a/utils/im/index.js b/utils/im/index.js index 78e8abe..60714db 100644 --- a/utils/im/index.js +++ b/utils/im/index.js @@ -122,7 +122,15 @@ const addListeners = () => { console.log('new Message'); newMessage(message) } - }) + }) + + // 监听消息回执 + RongIMLib.addReadReceiptReceivedListener(({ + data + }) => { + uni.$emit('onReadReceiptReceived', data) + }) + // 音视频通话相关的 // 监听通话呼入 CallLib.onCallReceived(({