import GoEasy from 'goeasy' //IM登录 export function goEasylogin(goeasy, id, avatar, nickname) { console.log("`````````````````goEasylogin`````````````````", id, avatar, nickname); goeasy.connect({ id: id, //im必填,最大长度60字符 data: { "avatar": avatar, "nickname": nickname }, //必须是一个对象,im必填,最大长度300字符,显示在会话列表中 onSuccess: function () { //连接成功 console.log("IM连接成功") //连接成功 }, onFailed: function (error) { //连接失败 console.log("IM连接失败, code:" + error.code + ",error:" + error.content); }, onProgress: function (attempts) { //连接或自动重连中 console.log("IM连接或自动重连中", attempts); } }); } //退出登录 export function goEasylogout(goeasy) { goeasy.disconnect({ onSuccess: function () { console.log("IM断开成功") }, onFailed: function (error) { console.log("IM断开失败, code:" + error.code + ",error:" + error.content); } }); } //获取会话列表 export function getConversationList(goeasy) { return new Promise((resolve, reject) => { var im = goeasy.im; im.latestConversations({ onSuccess: function (result) { console.log("获取会话列表成功", result); resolve(result.content); }, onFailed: function (error) { //获取失败 console.log("获取会话列表失败, code:" + error.code + " content:" + error.content); uni.showToast({ title: "获取会话列表失败", icon: "none", }); }, }); }); } //获取指定会话的消息列表 export function getConversationMessages(goeasy, userid, imestamp) { return new Promise((resolve, reject) => { var im = goeasy.im; im.history({ id: userid, //用户id或者群id type: GoEasy.IM_SCENE.PRIVATE, //群聊:GoEasy.IM_SCENE.GROUP, 客服:GoEasy.IM_SCENE.CS, lastTimestamp: imestamp, //上次查询结果里最后一条消息的时间戳,首次查询传入null即可 limit: 30, //可选项,返回的消息条数,默认为10条,最多30条 onSuccess: function (result) { console.log("获取消息列表成功", result); resolve(result.content); }, //查询成功 onFailed: function (error) { console.log("获取消息列表失败, code:" + error.code + " content:" + error.content); uni.showToast({ title: "获取消息列表失败", icon: "none", }); }, //查询失败 }); }); } //发送消息 export function sendMessage(goeasy, userid, message, avatar, nickname) { return new Promise((resolve, reject) => { var im = goeasy.im; //创建消息, 内容最长不超过3K,可以发送字符串,对象和json格式字符串 let textMessage = im.createTextMessage({ text: message, //消息内容 to: { type: GoEasy.IM_SCENE.PRIVATE, //私聊还是群聊,群聊为GoEasy.IM_SCENE.GROUP id: userid, //接收方用户id data: { "avatar": avatar, "nickname": nickname } //接收方用户扩展数据, 任意格式的字符串或者对象,用于更新会话列表conversation.data } }); //发送消息 im.sendMessage({ message: textMessage, onSuccess: function () { //发送成功 resolve(textMessage); }, onFailed: function (error) { //发送失败 console.log('发送消息失败,code:' + error.code + ' ,error ' + error.content); uni.showToast({ title: "发送消息失败", icon: "none", }); reject(error); } }); }); } //消息已读 export function messageRead(goeasy, userid) { return new Promise((resolve, reject) => { var im = goeasy.im; im.markMessageAsRead({ id: userid, type: GoEasy.IM_SCENE.PRIVATE, //群聊:GoEasy.IM_SCENE.GROUP, 客服消息:GoEasy.IM_SCENE.CS, onSuccess: function () { resolve() }, onFailed: function (error) { console.log('标记私聊已读失败', error); uni.showToast({ title: "标记私聊已读失败", icon: "none", }); }, }); }); } //发送自定义消息 export function sendCustomMessage(goeasy, type, userid, order, avatar, nickname) { return new Promise((resolve, reject) => { var im = goeasy.im; // 创建自定义消息 var customMessage = im.createCustomMessage({ type: type, //字符串,可以任意自定义类型 payload: order, to: { type: GoEasy.IM_SCENE.PRIVATE, //私聊还是群聊,群聊为GoEasy.IM_SCENE.GROUP id: userid, //接收方用户id data: { "avatar": avatar, "nickname": nickname } //好友扩展数据, 任意格式的字符串或者对象,用于更新会话列表conversation.data } }) // 发自定义消息 im.sendMessage({ message: customMessage, onSuccess: function () { //发送成功 resolve(customMessage); }, onFailed: function (error) { //发送失败 console.log('Failed to send message,code:' + error.code + ',error' + error.content); uni.showToast({ title: "发送自定义消息失败", icon: "none", }); } }); }); } //置顶会话 export function conversationTop(goeasy, conversation, top) { return new Promise((resolve, reject) => { var im = goeasy.im; im.topConversation({ conversation: conversation, top: top,//或者 false onSuccess: function () { resolve('成功'); }, onFailed: function (error) { console.log('失败:', error); uni.showToast({ title: "置顶会话失败", icon: "none", }); }, }); }); } //删除会话 export function conversationDelete(goeasy, conversation) { return new Promise((resolve, reject) => { var im = goeasy.im; im.removeConversation({ conversation: conversation, onSuccess: function () { resolve('删除会话成功'); }, onFailed: function (error) { console.log(error); uni.showToast({ title: "删除会话失败", icon: "none", }); }, }); }); } //发送消息 export function sendGroupMessage(goeasy, message) { return new Promise((resolve, reject) => { var im = goeasy.im; //发送消息 im.sendMessage({ message: message, onSuccess: () => { resolve(message); }, onFailed: function (error) { uni.showToast({ title: "发送消息失败", icon: "none", }); }, }); }); }