import store from '@/store/index.js' import * as RongIMLib from '@/uni_modules/RongCloud-IMWrapper/js_sdk/index' const getMessageList = (conversationType, targetId, timeStamp, count, isForward, callback) => { // 获取消息列表 https://doc.rongcloud.cn/imserver/server/v1/message/objectname#objectName const objectNames = [ 'RC:TxtMsg', 'RC:VcMsg', 'RC:HQVCMsg', 'RC:ImgMsg', 'RC:GIFMsg', 'RC:ImgTextMsg', 'RC:FileMsg', 'RC:LBSMsg', 'RC:SightMsg', 'RC:ReferenceMsg', 'RC:CombineMsg' ] RongIMLib.getHistoryMessagesByTimestamp( conversationType, targetId, objectNames, timeStamp + 1000, count, isForward, ({ code, messages }) => { if (code === 0) { callback(messages) } else { uni.showToast({ icon: 'error', title: code }) } } ) } /** * 发送文本消息 * @param {number} conversationType 消息类型 * @param {string} targetId 会话id * @param {string} content 消息内容 * @param {function} callback 回调函数 */ const sentText = (conversationType, targetId, content, callback) => { console.log('发送'); const msg = { conversationType: conversationType, targetId: String(targetId), content: { objectName: 'RC:TxtMsg', content: content, user: store.getters.sender } } RongIMLib.sendMessage(msg, ({ code, messageId }) => { if (code === 0) { callback(messageId) } else { uni.showToast({ icon: 'none', title: '发送失败' }) } }) } /** * 发送消息 * @param {number} conversationType 消息类型 * @param {string} targetId 会话id * @param {string} voiceUrl 录音的本地路径 * @param {integer} time 录音时长 * @param {function} callback 录音时长 */ const sentVoice = (conversationType, targetId, voiceUrl, time, callback) => { const msg = { conversationType: conversationType, targetId: String(targetId), content: { objectName: 'RC:HQVCMsg', local: 'file:///' + plus.io.convertLocalFileSystemURL(voiceUrl), duration: time } } RongIMLib.sendMediaMessage(msg, { success: (messageId) => { callback(messageId); }, progress: (progress, messageId) => { console.log(messageId); }, cancel: (messageId) => { // 发送取消回调 }, error: (errorCode, messageId) => { console.log(errorCode, messageId); } }) } const sentImage = (conversationType, targetId, imageUrl, callback) => { const msg = { conversationType: conversationType, targetId: String(targetId), content: { objectName: 'RC:ImgMsg', local: 'file:///' + plus.io.convertLocalFileSystemURL(imageUrl) } } RongIMLib.sendMediaMessage(msg, { success: (messageId) => { callback(messageId); }, progress: (progress, messageId) => { console.log(messageId); }, cancel: (messageId) => { // 发送取消回调 }, error: (errorCode, messageId) => { console.log(errorCode, messageId); } }) } const sentGif = (conversationType, targetId, gifUrl, time, callback) => { const msg = { conversationType: conversationType, targetId: String(targetId), content: { objectName: 'RC:GIFMsg', local: 'file:///' + plus.io.convertLocalFileSystemURL(gifUrl), duration: time } } RongIMLib.sendMediaMessage(msg, { success: (messageId) => { callback(messageId); }, progress: (progress, messageId) => { console.log(messageId); }, cancel: (messageId) => { // 发送取消回调 }, error: (errorCode, messageId) => { console.log(errorCode, messageId); } }) } const sendFile = (conversationType, targetId, fileUrl, time, callback) => { const msg = { conversationType: conversationType, targetId: String(targetId), content: { objectName: 'RC:FileMsg', local: 'file:///' + plus.io.convertLocalFileSystemURL(fileUrl), duration: time } } RongIMLib.sendMediaMessage(msg, { success: (messageId) => { callback(messageId); }, progress: (progress, messageId) => { console.log(messageId); }, cancel: (messageId) => { // 发送取消回调 }, error: (errorCode, messageId) => { console.log(errorCode, messageId); } }) } export default { getMessageList, sentText, sentVoice, sentImage, sentGif, sendFile }