parent
64fea0ebfe
commit
cc623b1a21
@ -0,0 +1,146 @@
|
|||||||
|
<html>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
|
||||||
|
<script src="https://g.alicdn.com/aliww/ww/json/json.js" charset="utf-8"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<!-- 自动适配移动端与pc端 -->
|
||||||
|
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
|
||||||
|
<script src="https://g.alicdn.com/aliww/??h5.openim.sdk/1.0.6/scripts/wsdk.js,h5.openim.kit/0.4.0/scripts/kit.js"
|
||||||
|
charset="utf-8"></script>
|
||||||
|
<script src="https://g.alicdn.com/aliww/h5.openim.sdk/1.0.6/scripts/wsdk.js"></script>
|
||||||
|
<script>
|
||||||
|
window.onload = function () {
|
||||||
|
$.ajax({
|
||||||
|
url: '/sys/openim/check',
|
||||||
|
method: 'PUT',
|
||||||
|
contentType: 'application/json',
|
||||||
|
success: function (resp) {
|
||||||
|
console.log(resp);
|
||||||
|
window.uid = resp.user_id;
|
||||||
|
window.touid = resp.user_id;
|
||||||
|
window.password = resp.password;
|
||||||
|
window.appKey = resp.appkey;
|
||||||
|
loginOpenim();
|
||||||
|
},
|
||||||
|
error: function (jqXHR) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function loginOpenim() {
|
||||||
|
WKIT.init({
|
||||||
|
container: document.getElementById('J_demo'),
|
||||||
|
width: 700,
|
||||||
|
height: 500,
|
||||||
|
uid: window.uid,
|
||||||
|
appkey: window.appKey,
|
||||||
|
credential: window.password,
|
||||||
|
touid: window.touid,
|
||||||
|
onLoginSuccess: function (data) {
|
||||||
|
initLayout();
|
||||||
|
WKIT.Conn.sdk.Event.on('MSG_RECEIVED', function (data) {
|
||||||
|
updateContractList(data.data);
|
||||||
|
});
|
||||||
|
initUnreadMsgAndContact();
|
||||||
|
WKIT.Conn.sdk.Base.startListenAllMsg();
|
||||||
|
window.sdk = document.getElementById("J_wkitPluginFrame").contentWindow;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function switchTouid(touid) {
|
||||||
|
window.uid = touid;
|
||||||
|
WKIT.switchTouid({
|
||||||
|
touid: touid
|
||||||
|
});
|
||||||
|
WKIT.Conn.sdk.Chat.setReadState({
|
||||||
|
touid: touid,
|
||||||
|
timestamp: Math.floor((+new Date()) / 1000),
|
||||||
|
success: function (data) {
|
||||||
|
},
|
||||||
|
error: function (error) {
|
||||||
|
console.log('set read state fail', error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
window.sdk.unreadMap[touid].msgCount = 0;
|
||||||
|
window.sdk.showContactList(window.sdk.unreadMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
function initUnreadMsgAndContact() {
|
||||||
|
WKIT.Conn.sdk.Base.getRecentContact({
|
||||||
|
count: 40,
|
||||||
|
success: function (data) {
|
||||||
|
var cnts = data.data.cnts;
|
||||||
|
for (var i = cnts.length - 1; i >= 0; i--) {
|
||||||
|
var unreadmapEle = {msgCount: 0};
|
||||||
|
window.sdk.unreadMap[WKIT.Conn.sdk.Base.getNick(
|
||||||
|
cnts[i].from)] = unreadmapEle;
|
||||||
|
}
|
||||||
|
getUnreadMsgCount();
|
||||||
|
},
|
||||||
|
error: function (error) {
|
||||||
|
console.log('get contact msg count fail',
|
||||||
|
error);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function getUnreadMsgCount() {
|
||||||
|
WKIT.Conn.sdk.Base.getUnreadMsgCount({
|
||||||
|
count: 40,
|
||||||
|
success: function (data) {
|
||||||
|
console.log(data);
|
||||||
|
var unreads = data.data;
|
||||||
|
var uids = "";
|
||||||
|
for (var i = unreads.length - 1; i >= 0; i--) {
|
||||||
|
if (window.sdk.unreadMap[WKIT.Conn.sdk.Base.getNick(
|
||||||
|
unreads[i].contact)]) {
|
||||||
|
|
||||||
|
}
|
||||||
|
window.sdk.unreadMap[WKIT.Conn.sdk.Base.getNick(
|
||||||
|
unreads[i].contact)].msgCount =
|
||||||
|
unreads[i].msgCount;
|
||||||
|
var nick = WKIT.Conn.sdk.Base.getNick(
|
||||||
|
unreads[i].contact)
|
||||||
|
uids +=
|
||||||
|
nick.substr(0, nick.length - 6) + ",";
|
||||||
|
}
|
||||||
|
window.sdk.loadContactList(uids);
|
||||||
|
},
|
||||||
|
error: function (error) {
|
||||||
|
console.log('get recent contact fail', error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateContractList(data) {
|
||||||
|
var msg = data.msgs[0];
|
||||||
|
var msg_uid = WKIT.Conn.sdk.Base.getNick(msg.from);
|
||||||
|
if (window.sdk.unreadMap[msg_uid]) {
|
||||||
|
window.sdk.unreadMap[msg_uid].msgCount = window.sdk.unreadMap[msg_uid].msgCount + 1;
|
||||||
|
} else {
|
||||||
|
var unreadMapEle = {msgCount: 1}
|
||||||
|
window.sdk.unreadMap[msg_uid] = unreadMapEle;
|
||||||
|
}
|
||||||
|
window.sdk.loadContactList(msg_uid.substr(0, msg_uid - 6));
|
||||||
|
}
|
||||||
|
|
||||||
|
function initLayout() {
|
||||||
|
$("#J_wkitUserInfo").hide();
|
||||||
|
$("#J_wkitPluginFrameWrap").height("100%");
|
||||||
|
$("#J_wkitPluginFrameWrap").css("margin", "0 0 0 0");
|
||||||
|
}
|
||||||
|
|
||||||
|
function getQueryString(name) {
|
||||||
|
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
|
||||||
|
var r = window.location.search.substr(1).match(reg);
|
||||||
|
if (r != null) {
|
||||||
|
return unescape(r[2]);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</html>
|
@ -0,0 +1,72 @@
|
|||||||
|
<html>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
|
||||||
|
<script src="https://g.alicdn.com/aliww/ww/json/json.js" charset="utf-8"></script>
|
||||||
|
<link href="static/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0">
|
||||||
|
<![endif]-->
|
||||||
|
<!-- 自动适配移动端与pc端 -->
|
||||||
|
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
|
||||||
|
<script src="https://g.alicdn.com/aliww/??h5.openim.sdk/1.0.6/scripts/wsdk.js,h5.openim.kit/0.4.0/scripts/kit.js"
|
||||||
|
charset="utf-8"></script>
|
||||||
|
<script src="https://g.alicdn.com/aliww/h5.openim.sdk/1.0.6/scripts/wsdk.js"></script>
|
||||||
|
<script>
|
||||||
|
window.onload = function () {
|
||||||
|
$('#submit').bind("click", function () {
|
||||||
|
var data = {};
|
||||||
|
data.loginId = $("#uid").val();
|
||||||
|
data.password = $("#pwd").val();
|
||||||
|
data.verifyCode = 'jhd7';
|
||||||
|
$.ajax({
|
||||||
|
url: '/sys/openim/signin',
|
||||||
|
method: 'POST',
|
||||||
|
data: JSON.stringify(data),
|
||||||
|
contentType: 'application/json',
|
||||||
|
success: function () {
|
||||||
|
window.subPage = document.getElementById("subPage").contentWindow;
|
||||||
|
window.subPageList =
|
||||||
|
document.getElementById("subPageList").contentWindow;
|
||||||
|
window.subPage.location.href = "/service_client_app.html";
|
||||||
|
window.subPageList.location.href = "/service_contact_list_app.html";
|
||||||
|
$("#loginInput").hide();
|
||||||
|
$("#subPageListDiv").hide();
|
||||||
|
},
|
||||||
|
error: function (jqXHR) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="loginInput" class="col-xs-12 login-box-body login-box-bg">
|
||||||
|
<form action="" method="post">
|
||||||
|
<div class="form-group has-feedback">
|
||||||
|
<input type="text" id="uid" class="form-control" placeholder="账号">
|
||||||
|
<span class="glyphicon glyphicon-user form-control-feedback"></span>
|
||||||
|
</div>
|
||||||
|
<div class="form-group has-feedback">
|
||||||
|
<input type="password" id="pwd" class="form-control" placeholder="密码">
|
||||||
|
<span class="glyphicon glyphicon-lock form-control-feedback"></span>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 margin-bottom">
|
||||||
|
<button type="button" id="submit" style="background-color: #f06010" class="btn btn-warning btn-block btn-flat">Sign In</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div id="subPageDiv">
|
||||||
|
<iframe id="subPage">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
<div id="subPageListDiv">
|
||||||
|
<iframe id="subPageList">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,202 @@
|
|||||||
|
<html>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<script src="https://g.alicdn.com/aliww/ww/json/json.js" charset="utf-8"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<!-- 自动适配移动端与pc端 -->
|
||||||
|
<script src="https://g.alicdn.com/aliww/h5.openim.sdk/1.0.6/scripts/wsdk.js"
|
||||||
|
charset="UTF-8"></script>
|
||||||
|
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
li {
|
||||||
|
float: left;
|
||||||
|
list-style-type: none;
|
||||||
|
transition: background-color .1s;
|
||||||
|
margin-bottom: 13px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-div {
|
||||||
|
height: 3%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-div input {
|
||||||
|
background: #D8D8D8;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hover {
|
||||||
|
color: black;
|
||||||
|
background-color: rgba(255, 255, 255, 0.03);
|
||||||
|
}
|
||||||
|
|
||||||
|
.active {
|
||||||
|
color: red;
|
||||||
|
background-color: rgba(255, 255, 255, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar {
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.headimg {
|
||||||
|
float: left;
|
||||||
|
border-radius: 50%;
|
||||||
|
width: 25px;
|
||||||
|
height: 25px;
|
||||||
|
border: 1px solid #000;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-position: center;
|
||||||
|
background-attachment: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.headimg-img {
|
||||||
|
width: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar {
|
||||||
|
margin-top: 8px;
|
||||||
|
padding-left: 27px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notice {
|
||||||
|
width: 15px;
|
||||||
|
height: 15px;
|
||||||
|
line-height: 15px;
|
||||||
|
font-size: 10px;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #f00;
|
||||||
|
border-radius: 50%;
|
||||||
|
position: relative;
|
||||||
|
right: -16px;
|
||||||
|
top: -7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.frm_search {
|
||||||
|
width: 133px;
|
||||||
|
height: 32px;
|
||||||
|
line-height: 32px;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 2px;
|
||||||
|
-moz-border-radius: 2px;
|
||||||
|
-webkit-border-radius: 2px;
|
||||||
|
background-color: #D8D8D8;
|
||||||
|
color: #fff;
|
||||||
|
padding-left: 30px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search_bar {
|
||||||
|
position: relative;
|
||||||
|
width: 137px;
|
||||||
|
margin: 0 auto 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.web_wechat_search {
|
||||||
|
background: url(/static/images/search.png) no-repeat;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
width: 25px;
|
||||||
|
height: 30px;
|
||||||
|
position: absolute;
|
||||||
|
line-height: 1.6;
|
||||||
|
background-size: 16px;
|
||||||
|
background-position: 5px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
var unreadMap = {};
|
||||||
|
function searchContact() {
|
||||||
|
var uid = $('#searchText').val();
|
||||||
|
var searchContactList = {};
|
||||||
|
for (var key in unreadMap) {
|
||||||
|
if (key.search(uid) > -1) {
|
||||||
|
searchContactList[key] = unreadMap[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var param = {clientMoniker: uid};
|
||||||
|
$.ajax({
|
||||||
|
url: '/sys/openim/list',
|
||||||
|
method: 'GET',
|
||||||
|
data: param,
|
||||||
|
contentType: 'application/json',
|
||||||
|
dataType: 'json',
|
||||||
|
success: function (resp) {
|
||||||
|
for (var i = 0; i <= resp.length - 1; i++) {
|
||||||
|
resp[i].msgCount = 0;
|
||||||
|
searchContactList[resp[i].nick] = resp[i];
|
||||||
|
unreadMap[resp[i].nick] = resp[i];
|
||||||
|
}
|
||||||
|
showContactList(searchContactList);
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
showContactList(searchContactList);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadContactList(uids) {
|
||||||
|
var param = {userNames: uids};
|
||||||
|
$.ajax({
|
||||||
|
url: '/sys/openim/list',
|
||||||
|
method: 'GET',
|
||||||
|
data: param,
|
||||||
|
contentType: 'application/json',
|
||||||
|
dataType: 'json',
|
||||||
|
success: function (resp) {
|
||||||
|
for (var i = 0; i <= resp.length - 1; i++) {
|
||||||
|
unreadMap[resp[i].nick].headimg = resp[i].headimg;
|
||||||
|
}
|
||||||
|
showContactList(unreadMap);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
function showContactList(map) {
|
||||||
|
var contact_list = '';
|
||||||
|
for (var key in map) {
|
||||||
|
var css = 'hover';
|
||||||
|
if (key == parent.window.uid) {
|
||||||
|
css = 'active';
|
||||||
|
}
|
||||||
|
var headImUrl = '';
|
||||||
|
if (map[key].headimg) {
|
||||||
|
headImUrl = map[key].headimg;
|
||||||
|
} else {
|
||||||
|
headImUrl = "/static/images/act/encourage_money/default_headimg.png";
|
||||||
|
}
|
||||||
|
contact_list +=
|
||||||
|
"<li " + " class=\"" + css + "\" onclick=switchToUser('" + key
|
||||||
|
+ "')>"
|
||||||
|
+ "<div class=\"headimg\" style='background-image:url(" + headImUrl
|
||||||
|
+ "')>"
|
||||||
|
+ "<div class=\"notice\">" + map[key].msgCount + "</div>"
|
||||||
|
+ "</div>"
|
||||||
|
+ "<div class=\"avatar\">" + key + "</div>"
|
||||||
|
+ "</li>"
|
||||||
|
}
|
||||||
|
$("#contact_list").html(contact_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
function switchToUser(touid) {
|
||||||
|
parent.switchTouid(touid);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<body>
|
||||||
|
<div class="search_bar">
|
||||||
|
<i class="web_wechat_search"></i>
|
||||||
|
<input id="searchText" class="frm_search" type="text" onchange="searchContact()">
|
||||||
|
</div>
|
||||||
|
<div class="list">
|
||||||
|
<ul id="contact_list">
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -1,23 +0,0 @@
|
|||||||
<html>
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<script src="https://g.alicdn.com/aliww/ww/json/json.js" charset="utf-8"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<!-- 自动适配移动端与pc端 -->
|
|
||||||
<script src="https://g.alicdn.com/aliww/??h5.openim.sdk/1.0.6/scripts/wsdk.js,h5.openim.kit/0.3.3/scripts/kit.js"
|
|
||||||
charset="utf-8"></script>
|
|
||||||
<script>
|
|
||||||
window.onload = function () {
|
|
||||||
WKIT.init({
|
|
||||||
container: document.getElementById('J_demo'),
|
|
||||||
width: 700,
|
|
||||||
height: 500,
|
|
||||||
uid: 'kira1',
|
|
||||||
appkey: 24980715,
|
|
||||||
credential: 'xxxxxx',
|
|
||||||
touid: 'dalong',
|
|
||||||
logo: 'http://img.alicdn.com/tps/i3/TB12LD9IFXXXXb3XpXXSyFWJXXX-82-82.png',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</html>
|
|
Loading…
Reference in new issue