APIcloud实时监听手机网络状态, 上次遇到一个问题,是做一个视频播放的时候,要获取到当前网络状态,在wifi的网络下直接播放,不是wifi的网络下,提示用当前网络播放,确定就要播放,取消就不播放。弄了一下,遇到一个问题当wifi的时候能正常播放,而没wifi的时候你点击了播放确定后,播放了,你在帮wifi打开,这个时候提示的依然是你刚才获取的到网络,除非从新进入这个页面,
这就要做网络的实时监听。
代码很简单。 var connectionType;//全局中定义变量apiready = function() { connectionType = api.connectionType; //下面这几行代码就为最关键的,实时监听你网络的变化,来改变connectionType的 //值,从而解决了舒心页面的问题 api.addEventListener({ name: 'online' }, function(ret, err) { connectionType = ret.connectionType; }); api.addEventListener({ name: 'offline' }, function(ret, err) { connectionType = ""; toast('网络无连接!'); });}比如我们下面有一个播放或者跟网络相关的代码,播放为例function openPlay() { if(connectionType=='wifi' ){ //播模块 DDVplay.ddvplay({ vx: 0, vy: 69, vw: api.winWidth, vh: 200, vieurl: vieurl,//视频播放连接 }) }else if(connectionType == "4G" || connectionType == "3G" || connectionType == "2G"){ //一个弹出提示框,标题,提示内容,一个取消按钮和一个确定按钮,根据自己的需要自己去找一个或者写有个 showDialog("温馨提示", "你当前正在使用" + connectionType + "网络,是否继续播放?", "取消", "确定",function(ret, err){ document.getElementById('box').style.background = '#000'; DDVplay.ddvplay({ vx: 0, vy: 69, vw: api.winWidth, vh: 200, vieurl: vieurl,//视频播放连接 }) }) } }
|