当前位置:首页 > Windows程序 > 正文

apicloud+融云实现即时通讯

2021-03-25 Windows程序

使用apicloud开发已经快2个月了,起初的目的就是为了实现安卓和苹果的兼容,属于一个试验项目,究竟apicloud是否能够满足公司的要求?最 终看来还是不错的,使用apicloud+融云实现了类似微信即时通讯的功能。看到有很多后来的人依然在这块挣扎,我就把自己的实现思路和成果分享出来和 大家一起交流一下,我也是第一次做手机开发,有很多经验不足的地方,希望大家能够直接指出来,我也不断完善自己的产品。
    这次没有使用本地数据库,所有数据都是从融云和服务器获取,会影响性能,下一步会把数据本地化处理,再将优化后的代码和大家交流。
    具体实现的思路,说的可能会有些混乱,希望大家能谅解~
    一、功能说明:
    1. 登录功能:类似微信,登录后记住当前人账号和密码,记在了Storage里,可能会有安全性问题,想在第二版优化时保存在数据库中;
    2. 通讯录功能:类似微信,包括群组及好友列表
    3. 历史会话列表:类似微信,包括群组及个人的历史会话列表
    4. 发送内容:包括文本、语音和图片
    二、使用的模块
        包括:fs、imageBrowser、bubbleMenu、listContact、UIMediaScanner、rongCloud、UIChatBox
    三、实现思路:
    PS:这里借鉴了 “流浪男” 的一篇文章,感谢他的对我实现思路的重大启发,原文:?mod=viewthread&tid=8715
           使用论坛中的aui.css样式
            感谢技术客服  技术支持-M 的辛勤帮助
            感谢  吴勇  兄弟的帮助
    1.  登录操作,登录时访问服务器(自己的云服务器)获取token,服务器使用的是java的sdk获取token,组装token和人员的所有信息json返回到app,保存在storage里,后期会存到本地数据库中;
    2. 主界面,包括4个菜单,分别为会话历史页面、通讯录页面、应用页面和个人设置页面,所有的和融云相关的业务逻辑都在hh_index_window里面初始化,其他页面获取数据时,都是采取监听模式获取数据;
    3. 会话历史页面:hh_index_window.html
   

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<!-- html5:在创建html时为了防止页面缩放等不兼容效果,要创建个viewport -->
<meta content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
<!-- 在IOS设备上,有时会将数字转为手机号,这里也要禁止下 -->
<meta content="telephone=no"/>
<title>会话列表</title>
<link type="text/css" href="" />
<style>
.span_name {
width: 20%;
/*font-size: 18px;*/
/*text-align: center;*/
display: inline-block;
/*word-break: keep-all;*/
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style>
</head>
<body>
<!--<div><input type="button" value="为了测试,点击这里清空会话"/>-->
<ul>
<!--<li>
<img src="">
<div>
<span>系统消息1<em>10:22</em></span>
<p class=http://www.mamicode.com/‘aui-ellipsis-1‘>
理想家校通上线啦~~~
</p>
</div>-->
<!--<div>
<div>
<p></p>
</div>
</div>-->
<!--</li>-->
<!--会话列表-->
<div></div>
<script type="text/html">
<% if(result.length == 0){ %>
<div><span>您还没有会话记录,快去找小伙伴们聊天 吧~~</span></div>
<% }else{ %>
<%for(var i=0; i<result.length; i++) {%>

<li alt="<%=result[i].conversationType %>">
<img src="<%=result[i].avatar_url %>">
<div>
<span><span><%=result[i].person_name %></span><em><%=g_time.getTime(result[i].receivedTime,1) %></em></span>
<% if(result[i].objectName == ‘RC:VcMsg‘) { %>
<p class=http://www.mamicode.com/‘aui-ellipsis-1‘>[语音]</p>
<% } %>
<% if(result[i].objectName == ‘RC:TxtMsg‘) { %>
<p class=http://www.mamicode.com/‘aui-ellipsis-1‘><%=result[i].latestMessage.text %></p>
<% } %>
<% if(result[i].objectName == ‘RC:ImgMsg‘) { %>
<p class=http://www.mamicode.com/‘aui-ellipsis-1‘>[图片]</p>
<% } %>
</div>
<% if(result[i].unreadMessageCount > 0) { %>
<div>
<div>
<p><%=result[i].unreadMessageCount %></p>
<input type="hidden" value="<%=result[i].unreadMessageCount %>"/>
</div>
</div>
<% } %>
</li>
<%}%>
<% } %>

</script>
</ul>
<!--</div>-->

<script type="text/javascript" src=""></script>
<script type="text/javascript" src=""></script>
<script type="text/javascript" src=""></script>
<!-- 长按控件 周枫 2015.08.05 -->
<script type="text/javascript" src=""></script>
<script type="text/javascript" src=""></script>
<script type="text/javascript" src=""></script>
</body>
</html>


温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/67353.html