mui.init({ preloadPages: [{ url: 'tpl/communicate/chats.html', id: 'tpl/communicate/chats.html' }] }); mui(document.body).on('tap', '.address-box', function() { if(mui(this)[0].parentNode.childNodes[1].style.display == 'block') { mui(this)[0].parentNode.childNodes[1].style.display = 'none'; mui(this)[0].parentNode.childNodes[0].childNodes[0].classList.remove('icons') } else { mui(this)[0].parentNode.childNodes[1].style.display = 'block'; mui(this)[0].parentNode.childNodes[0].childNodes[0].classList.add('icons') } }); var socket; var UserCode; mui.plusReady(function() { var str = plus.storage.getItem('user'); var user = JSON.parse(str); var token = user.Data.Token; UserCode = user.Data.UserCode; mui('.mui-scroll-wrapper').scroll({ deceleration: 0.0006 //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006 }); //查询储存的消息 chats(token.substring(0, 32)); if(socket == null) { //连接 if(str != null && str != "[]") { //socket = new WebSocket('ws://139.129.200.116:9000'); socket = new WebSocket('ws://120.132.20.11:9000'); //socket = new WebSocket('ws://192.168.1.106:9000'); socket.onopen = function() { var a = "员工编码:" + user.Data.UserCode + ""; socket.send(a); }; socket.onmessage = function(res) { var datas = JSON.parse(res.data); //存储记录 storageMsg(token + datas.mine[0].id, datas); var detailPage = plus.webview.getWebviewById('tpl/communicate/chats.html'); mui.fire(detailPage, 'Msg', { content: datas.mine[0].content }); if(mui.os.ios){ plus.ios.invoke(null, "AudioServicesPlaySystemSound", 1000); } }; window.addEventListener('sendMsg', function(event) { var list = plus.storage.getItem('list'); var user_list = JSON.parse(list); for(var i = 0; i < user_list.length; i++) { for(var j = 0; j < user_list[i].list.length; j++) { var tokenId = token + user_list[i].list[j].id; if(tokenId == event.detail.to) { var a = { "mine": [{ "avatar": event.detail.msg.src.substring(24, event.detail.msg.src.length), "content": event.detail.msg.content, "id": UserCode, "mine": "true", "username": user.Data.Name }], "to": [{ "avatar": user_list[i].list[j].avatar, "content": "", "id": event.detail.mine, "name": user_list[i].list[j].username, "type": 'friend' }] }; storageMsg(token + a.to[0].id, a); socket.send(JSON.stringify(a)); } } } }, false); } } mui.ajax('http://www.bosshand.cn/api/Customer/GetInfoFriendGroupchat', { dataType: 'json', type: "get", timeout: 10000, //超时时间设置为10秒; headers: { 'Content-Type': 'application/x-www-form-urlencoded', authorization: token }, success: function(data) { var data = data.data.friend; plus.storage.setItem('list', JSON.stringify(data)) var html = ''; for(var i = 0; i < data.length; i++) { html += '
  • ' html += '
    ' html += '' html += '' + data[i].groupname + '' html += '
    ' html += '' html += '
  • ' } mui('.address-list')[0].innerHTML = html; } }) function chatlist() { var arrayId = JSON.parse(plus.storage.getItem('chartId')) var arrContent = []; for(var i = 0; i < arrayId.length; i++) { if(arrayId[i].substring(0, 56) == token) { arrContent.push(JSON.parse(plus.storage.getItem(arrayId[i]))[JSON.parse(plus.storage.getItem(arrayId[i])).length - 1]); } } } }); //$(doc.body).on('tap', '.imgs', function() { // $('.bg .imgss')[0].innerHTML = ''; // alert(JSON.stringify($(this)[0].id)) // $('.bg')[0].style.display = 'block'; // }); // $(doc.body).on('tap', '.close', function() { // $('.bg')[0].style.display = 'none'; // }); //存储聊天记录; function storageMsg(userid, tempObj) { //存储token+id if(plus.storage.getItem('chartId') != null || plus.storage.getItem('chartId') != undefined) { var arrayId = JSON.parse(plus.storage.getItem('chartId')); var isId = true; for(var i = 0; i < arrayId.length; i++) { if(userid == arrayId[i]) { isId = false; break; } } if(isId) { arrayId.push(userid); } plus.storage.setItem('chartId', JSON.stringify(arrayId)); } else { var tempIdArr = []; tempIdArr.push(userid) var idStr = JSON.stringify(tempIdArr); plus.storage.setItem('chartId', idStr); }; //根据token+id存储数据 if(plus.storage.getItem(userid) != null || plus.storage.getItem(userid) != undefined) { var arrayObj = JSON.parse(plus.storage.getItem(userid)); arrayObj.push(tempObj); plus.storage.setItem(userid, JSON.stringify(arrayObj)); } else { var tempArr = []; tempArr.push(tempObj) var objStr = JSON.stringify(tempArr); plus.storage.setItem(userid, objStr); }; chats(userid.substring(0, 32)); }; //渲染页面 function chats(token) { var arrayId = JSON.parse(plus.storage.getItem('chartId')); if(arrayId != null || arrayId != undefined) { var arrContent = []; for(var i = 0; i < arrayId.length; i++) { if(arrayId[i].substring(0, 32) == token) { arrContent.push(JSON.parse(plus.storage.getItem(arrayId[i]))[JSON.parse(plus.storage.getItem(arrayId[i])).length - 1]); } } var htmls = ''; for(var j = 0; j < arrContent.length; j++) { if(arrContent[j].mine[0].id != UserCode) { htmls += '
  • '; htmls += ' '; htmls += '
    ' + arrContent[j].mine[0].username + '

    ' + arrContent[j].mine[0].content + '

    '; htmls += '
    '; htmls += '
  • '; } else { htmls += '
  • '; htmls += ' '; htmls += '
    ' + arrContent[j].to[0].name + '

    ' + arrContent[j].mine[0].content + '

    '; htmls += '
    '; htmls += '
  • '; } mui('.chat-list')[0].innerHTML = ''; }; }; }; //打开聊天面板 function openChats(id) { mui.openWindow({ url: 'tpl/communicate/chats.html', waiting: { autoShow: false, //自动显示等待框,默认为true }, extras: { data: id }, show: { autoShow: true, //页面loaded事件发生后自动显示,默认为true duration: 300, //页面动画持续时间,Android平台默认100毫秒,iOS平台默认200毫秒; }, hardwareAccelerated: true //开启硬件加速 }); }; function removeStorage() { plus.storage.removeItem("chartId"); };