From dbda19870ff1ea70ac2500796e7ab318216ce675 Mon Sep 17 00:00:00 2001 From: Jason Date: Tue, 1 Mar 2022 10:40:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B6=88=E6=81=AF=E5=8F=91?= =?UTF-8?q?=E9=80=81=E5=87=BD=E6=95=B0=EF=BC=8C=E8=AE=BE=E5=AE=9A=E9=9F=B3?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E9=80=9A=E8=AF=9D=E7=9A=84=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=8F=91=E9=80=81=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../conversation/messagePreview.vue | 21 ++- pages/im/components/sent/sentPopups.vue | 12 +- pages/im/components/sent/sentText.vue | 2 +- pages/im/components/show/showAudio.vue | 84 +++++++++ pages/im/components/show/showLocation.vue | 15 +- pages/im/components/show/showNormal.vue | 8 +- pages/im/components/show/showVideo.vue | 84 +++++++++ pages/im/index.vue | 5 + pages/im/private/call.nvue | 32 +--- static/imgs/map.jpeg | Bin 0 -> 6947 bytes utils/im/message.js | 163 +++++++++++------- 11 files changed, 324 insertions(+), 102 deletions(-) create mode 100644 pages/im/components/show/showAudio.vue create mode 100644 pages/im/components/show/showVideo.vue create mode 100644 static/imgs/map.jpeg diff --git a/pages/im/components/conversation/messagePreview.vue b/pages/im/components/conversation/messagePreview.vue index 37dd25e..f2ac028 100644 --- a/pages/im/components/conversation/messagePreview.vue +++ b/pages/im/components/conversation/messagePreview.vue @@ -7,33 +7,36 @@ {{ user.name }}:{{ msg.content || '' }} - + {{ user.name }}:[语音] - + {{ user.name }}:[图片] - + {{ user.name }}:[表情] - + {{ user.name }}:[文件] - + {{ user.name }}:[位置] - + {{ user.name }}:[语音通话] - + {{ user.name }}:[视频通话] - + [{{ msg.message }}] - + {{ user.name }}: 撤回了一条消息 + + {{ msg.objectName }} + diff --git a/pages/im/components/sent/sentPopups.vue b/pages/im/components/sent/sentPopups.vue index 28ea991..f42e345 100644 --- a/pages/im/components/sent/sentPopups.vue +++ b/pages/im/components/sent/sentPopups.vue @@ -132,11 +132,13 @@ break; case 'location': uni.chooseLocation({ - success: (location) => { - console.log(location); - im.sentLocation(this.conversationType, this.targetId, location).then(() => { - this.success() - }) + success: (location) => { + const thumbnail = '' + // 通过 location 的经纬度,合成一张图片,再把图片的base64发送出去 + im.sentLocation(this.conversationType, this.targetId, location, thumbnail) + .then(() => { + this.success() + }) } }) break; diff --git a/pages/im/components/sent/sentText.vue b/pages/im/components/sent/sentText.vue index 7ccab83..0e745c5 100644 --- a/pages/im/components/sent/sentText.vue +++ b/pages/im/components/sent/sentText.vue @@ -59,7 +59,7 @@ RongIMLib.clearTextMessageDraft(this.conversationType, this.targetId) this.$emit('success') this.inputTxt = '' - }) + }) } }, focus() { diff --git a/pages/im/components/show/showAudio.vue b/pages/im/components/show/showAudio.vue new file mode 100644 index 0000000..323b299 --- /dev/null +++ b/pages/im/components/show/showAudio.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/pages/im/components/show/showLocation.vue b/pages/im/components/show/showLocation.vue index 80efb4c..3c14247 100644 --- a/pages/im/components/show/showLocation.vue +++ b/pages/im/components/show/showLocation.vue @@ -7,9 +7,11 @@ {{ content.customFields.name }} - {{ content.customFields.address }} + + + {{ content.customFields.address }} - + @@ -81,9 +83,16 @@ background: #FFFFFF; padding: 10rpx; - .location--name { + .location--name { + font-size: 32rpx; overflow: hidden; word-break: break-all; + } + + .location--address { + padding-bottom: 10rpx; + font-size: 24rpx; + color: $text-gray-m; } .map { diff --git a/pages/im/components/show/showNormal.vue b/pages/im/components/show/showNormal.vue index 3b7ee73..6d08131 100644 --- a/pages/im/components/show/showNormal.vue +++ b/pages/im/components/show/showNormal.vue @@ -1,11 +1,15 @@ diff --git a/pages/im/components/show/showVideo.vue b/pages/im/components/show/showVideo.vue new file mode 100644 index 0000000..606991c --- /dev/null +++ b/pages/im/components/show/showVideo.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/pages/im/index.vue b/pages/im/index.vue index 55a7a07..7bf335e 100644 --- a/pages/im/index.vue +++ b/pages/im/index.vue @@ -55,6 +55,11 @@ connectionStatus }, onLoad() { + RongIMLib.getCurrentUserId(({ + userId + }) => { + console.log('getCurrentUserId', userId); + }) // 监听新的好友申请 uni.$on('onNewContactConversation', () => { console.log('更新好友申请数量'); diff --git a/pages/im/private/call.nvue b/pages/im/private/call.nvue index bfb7884..d071fee 100644 --- a/pages/im/private/call.nvue +++ b/pages/im/private/call.nvue @@ -75,7 +75,7 @@ // 关闭扬声器 volumeOff: false, // 通话时长 - duration: 0, + duration: 0, interval: null } }, @@ -83,7 +83,7 @@ this.avatarSize = utils.rpx2px(200) this.targetId = e.targetId this.mediaType = e.mediaType - this.isCall = Boolean(e.isCall) + this.isCall = Boolean(e.isCall) // 进入页面开启外呼 if (this.isCall) { CallLib.startSingleCall(this.targetId, this.mediaType, ''); @@ -131,25 +131,9 @@ } }, methods: { - afterHangup() { - clearInterval(this.interval) - const targetId = this.targetId - const sentStatus = 30 - const messageContent = { - objectName: 'RC:InfoNtf', - userInfo: this.$store.getters.sender, - message: JSON.stringify({ - mediaType: this.mediaType, - connected: this.connected, - duration: this.duration - }) - } - const sentTime = 0 - if (this.isCall) { - IMLib.insertOutgoingMessage(1, targetId, sentStatus, messageContent, sentTime) - } else { - IMLib.insertIncomingMessage(1, targetId, targetId, sentStatus, messageContent, sentTime) - } + afterHangup() { + clearInterval(this.interval) + // duration: this.duration uni.$emit('onReceiveMessage_' + this.targetId, { targetId: this.targetId }) @@ -179,9 +163,9 @@ CallLib.setVideoView(session.targetId, this.$refs.bigVideoView.ref, 0, false) CallLib.setVideoView(session.mine.userId, this.$refs.smallVideoView.ref, 0, true) }, 200) - } - this.interval = setInterval(() => { - this.duration++ + } + this.interval = setInterval(() => { + this.duration++ }, 1000) }, // 切换主屏显示人 diff --git a/static/imgs/map.jpeg b/static/imgs/map.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..46a4fac38a3c7c635804e288b3690701040259cf GIT binary patch literal 6947 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 literal 0 HcmV?d00001 diff --git a/utils/im/message.js b/utils/im/message.js index d05e88a..7bdcb55 100644 --- a/utils/im/message.js +++ b/utils/im/message.js @@ -83,7 +83,7 @@ const getGroupPendinglist = (targetId, callback) => { */ const sentText = (conversationType, targetId, content) => { return new Promise((resolve, reject) => { - const msg = { + const message = { conversationType: conversationType, targetId: String(targetId), content: { @@ -93,24 +93,10 @@ const sentText = (conversationType, targetId, content) => { } } - RongIMLib.sendMessage(msg, ({ - code, - messageId - }) => { - if (code === 0) { - if (conversationType == 3) { - RongIMLib.sendReadReceiptRequest(messageId, (res) => { - console.log('发送回执请求', res); - }) - } - resolve(messageId) - } else { - uni.showToast({ - icon: 'none', - title: '发送失败' + code - }) - reject(code) - } + sendCommonMessage(message, (messageId) => { + resolve(messageId) + }, (errCode) => { + reject(errCode) }) }) } @@ -136,11 +122,9 @@ const sentVoice = (conversationType, targetId, voiceUrl, time) => { } } RongIMLib.sendMediaMessage(msg, { - success: (messageId) => { - if (conversationType == 3) { - RongIMLib.sendReadReceiptRequest(messageId, (res) => { - console.log('发送回执请求', res); - }) + success: (messageId) => { + if (conversationType == 3) { + RongIMLib.sendReadReceiptRequest(messageId) } resolve(messageId) }, @@ -169,11 +153,9 @@ const sentImage = (conversationType, targetId, imageUrl) => { } } RongIMLib.sendMediaMessage(msg, { - success: (messageId) => { - if (conversationType == 3) { - RongIMLib.sendReadReceiptRequest(messageId, (res) => { - console.log('发送回执请求', res); - }) + success: (messageId) => { + if (conversationType == 3) { + RongIMLib.sendReadReceiptRequest(messageId) } resolve(messageId) }, @@ -201,11 +183,9 @@ const sentFile = (conversationType, targetId, fileUrl) => { } RongIMLib.sendMediaMessage(msg, { - success: (messageId) => { - if (conversationType == 3) { - RongIMLib.sendReadReceiptRequest(messageId, (res) => { - console.log('发送回执请求', res); - }) + success: (messageId) => { + if (conversationType == 3) { + RongIMLib.sendReadReceiptRequest(messageId) } resolve(messageId) }, @@ -219,48 +199,111 @@ const sentFile = (conversationType, targetId, fileUrl) => { } // 发送地理位置 -const sentLocation = (conversationType, targetId, location) => { +const sentLocation = (conversationType, targetId, location, thumbnail) => { return new Promise((resolve, reject) => { - const msg = { + const message = { conversationType: conversationType, targetId: String(targetId), - objectName: 'RC:LBSMsg', content: { customType: 2, objectName: 'RC:LBSMsg', customFields: { - name: location.name, + name: location.name, address: location.address, latitude: Number(location.latitude), - longitude: Number(location.longitude), - thumbnail: '' + longitude: Number(location.longitude), + thumbnail: thumbnail }, userInfo: store.getters.sender, } } - RongIMLib.sendMessage(msg, ({ - code, - messageId - }) => { - if (code === 0) { - if (conversationType == 3) { - RongIMLib.sendReadReceiptRequest(messageId, (res) => { - console.log('发送回执请求', res); - }) - } - resolve(messageId) - } else { - uni.showToast({ - icon: 'none', - title: '发送失败' + code - }) - reject(code) - } + sendCommonMessage(message, (messageId) => { + resolve(messageId) + }, (errCode) => { + reject(errCode) }) }) } +/** + * 发送视频通话结果 + */ +const sentVideo = (conversationType, targetId, status, time) => { + return new Promise((resolve, reject) => { + const message = { + conversationType: conversationType, + targetId: String(targetId), + content: { + customType: 2, + objectName: 'RC:VideoMsg', + customFields: { + status: status, + duration: time + }, + userInfo: store.getters.sender, + } + } + + sendCommonMessage(message, (messageId) => { + resolve(messageId) + }, (errCode) => { + reject(errCode) + }) + }) +} + +/** + * 发送语音通话结果 + */ +const sentAudio = (conversationType, targetId, status, time) => { + return new Promise((resolve, reject) => { + const message = { + conversationType: conversationType, + targetId: String(targetId), + content: { + customType: 2, + objectName: 'RC:AudioMsg', + customFields: { + status: status, + duration: time + }, + userInfo: store.getters.sender, + } + } + + sendCommonMessage(message, (messageId) => { + resolve(messageId) + }, (errCode) => { + reject(errCode) + }) + }) +} + +/** + * 发送普通消息 + */ +const sendCommonMessage = (message, success, fail) => { + RongIMLib.sendMessage(message, ({ + code, + messageId + }) => { + if (code === 0) { + if (message.conversationType == 3) { + RongIMLib.sendReadReceiptRequest(messageId) + } + + success(messageId) + } else { + uni.showToast({ + icon: 'none', + title: '发送失败' + code + }) + fail(code) + } + }) +} + export default { getMessageList, getPendingList, @@ -269,5 +312,7 @@ export default { sentVoice, sentImage, sentFile, - sentLocation + sentLocation, + sentVideo, + sentAudio }