最近中途接手即時(shí)通訊聊天拣宰,大致業(yè)務(wù)基本都已完成,因?yàn)槲覀冺?xiàng)目是有頭像字段的坏快,但是容聯(lián)云那邊目前沒有同步頭像的接口属铁。需要我實(shí)現(xiàn)的是群聊時(shí)要獲取到每個(gè)發(fā)送者的頭像并展示在聊天窗口中。
大致思路:容聯(lián)云有個(gè)自定義字段msgDomain,在發(fā)送信息時(shí)型酥,創(chuàng)建消息行dom的數(shù)組山憨,其中定義一個(gè)msgAvatar的項(xiàng),然后在新建消息對(duì)象時(shí)setDomain發(fā)送者頭像弥喉,接收時(shí)會(huì)在消息對(duì)象中獲取到msgDomain的字段郁竟,賦值到msgAvatar,然后調(diào)用將消息傳至聊天窗口的函數(shù)即可由境。
- 發(fā)送消息時(shí)棚亩,新建消息對(duì)象時(shí) setDomain,值為我的頭像(作為發(fā)送者)
var obj = new RL_YTX.MsgBuilder();//新建消息對(duì)象
obj.setFile(file);
obj.setType(type);
obj.setReceiver(receiver);//設(shè)置接受者
obj.setDomain(get_cookie("avatar")); // set 一個(gè)自定義字段 用來存儲(chǔ)本人的頭像
2.接收消息時(shí),獲取到自定義字段帶回來的值
var msgDiv = {};
msgDiv["isSender"] = obj.msgSender == IM.user_account;
msgDiv["senderName"] = obj.senderNickName || obj.msgSender;
msgDiv["msgType"] = obj.msgType;
msgDiv["msgAvatar"] = obj.msgAvatar; // Alice
if (obj.msgType == 4 || obj.msgType == 7 || obj.msgType == 6) { // 信息類型為圖片蔑舞、非壓縮文件拒担、壓縮文件
msgDiv["msgFileUrl"] = obj.msgFileUrl;
msgDiv["msgFileName"] = obj.msgFileName;
msgDiv["msgFileSize"] = obj.msgFileSize;
msgDiv["msgAvatar"] = obj.msgDomain; // 將domaind的值賦值給dom數(shù)組中的msgAvatar
} else {
msgDiv["content"] = obj.msgContent;
}
3.在addMsgToChatWindow 函數(shù)中,定義變量存儲(chǔ)在div數(shù)組的msgAvatar項(xiàng)中攻询。
if(obj.msgType == 4 || obj.msgType == 6 || obj.msgType ==7){
img = obj.msgAvatar; // Alice
}else{
img=obj.content.split(";+")[1];
}