来源: 使用web方式开发cordova(ionic)应用即时聊天(im)功能(1) – Jax2000的学习旅程 – SegmentFault
最近在用ionic做一个app的时候,客户那边有即时聊天的需求,需要可以发文本、语音、图片和地理位置。为了快速开发,所以选择了采用第三方的库来开发,国内这方面做的比较好的有融云、野狗和leanCloud,最后选择了融云来做,理由有:
- 我的需求都在他们的免费服务里,我不需要交钱(〃^∇^)ぇ∧∧∧っ
- 看了下文档(web)足够简单,接口很清晰
- 他们的技术工作人员服务很到位,我在他们的工单库(也就是个提问平台)中提出的问题,他们会很快给我解答,而且回答的很到位,都解决或者指出了我的问题
因为我是用ionic开发也就是用h5跨平台的方式开发app,所以有两个选择,一个是直接用web的方式来做,一个是用cordova的插件的方式来做,这里我没有用cordova插件的方式来做的主要原因是,没法调试。
web的方式的话,他们又提供了一种聊天插件,可以就几行代码就把聊天功能集成进来,不过我没有选择,因为那个界面不太适合移动端(人家本来就是为pc的用户编写的吗),而且没有集成语音和发送地理位置的功能。下面进入正题。
先提供几个资源:
大家通过开发者文档,肯定可以把从注册开发者账号到到初始化sdk到获取token的步骤全做了,我就不介绍了,不过中间有个坑需要注意一下。就是我用web sdk在cordova生成的Android上使用,发现连接不上,一直没响应,但是在pc上的开发过程是一点问题都没有的,最后还是他们的工作人员给了我解答,就是我们可能需要使用长连接的方式,因为我们生成的应用可能不支持webSocket,所以我们需要在引入sdk前设置:
<script type="text/javascript">
window["SCHEMETYPE"] = "http";
window.WEB_XHR_POLLING = true;
</script>
<script src="http://cdn.ronghub.com/RongIMLib-2.1.3.min.js"></script>
注意需要在引入融云的库之前执行。
到此为止我们真正开始开发的前置工作就完成了。