跨平台移动开发实战(八)------移动客户端网络通信
服务器端搭建好后,移动客户端就需要基于HTTP和Websocket来和服务器端通信,HTTP就基于Ajax来实现,Websocket就得靠各个移动平台浏览器对Websocket的支持,基本的开发大家查查文档就比较容易掌握,这里我着重谈三点:
Ajax安全策略移动平台对Websocket的支持文件传输1)Ajax安全策略
大家都知道Ajax存在跨域的限制,而基于Phonegap的离线开发实际上是本地HTML向server端发起Ajax请求,同样会有安全限制,会导致你客户端拿不到server端的返回信息,解决方法就是在servlet向客户端写数据之前加上如下代码:
websocket.onmessage = function(e) { console.log(e.data); var token = getToken(); var r=eval("("+e.data+")"); if(r.type == 'syncList'){ for(var i=0;i<r.data.length;i++){ device.syncFile(token, r.data[i].id, r.data[i].name); } }}r.data[i].id和r.data[i].name是需要下载文件的标识,通过这个标识能对应到文件下载的URL,虽然这个方案不完美,但还比较健壮。不过,通过Websocket直接传输文件虽然想起来复杂,但肯定是走得通的,等这块实验成功后我再补充到这里。