移动端笔记-js检测网络状态

移动项目,有时候需要检测当前的状态是否是在wifi网络下,那js可以检测出这种状态吗?

我们可以试下用window.navigator.connection来检测,另外微信6.0版本以上,UA有个NetType,6.0版本以下,可以用微信私有接口WeixinJSBridge:

var network_state = '未知';
var ua = window.navigator.userAgent;
var con = window.navigator.connection;
document.getElementById('appA').innerHTML = 'ua:'+ua;
// 如果是微信
if(/MicroMessenger/.test(ua)){
    // 如果是微信6.0以上版本,用UA来判断
    if(/NetType/.test(ua)){
        var type = ua.match(/NetType\/(\S*)/);
        network_state = type[1];
    // 如果是微信6.0以下版本,调用微信私有接口WeixinJSBridge
    }else{
        document.addEventListener("WeixinJSBridgeReady",function onBridgeReady(){
            WeixinJSBridge.invoke('getNetworkType',{},function(e){
                network_state = e.err_msg;
            });
        });
    }
// 如果支持navigator.connection
}else if(con){
    var network = con.type;
    network_state = network;
}
document.getElementById('app').innerHTML = '你当前的网络状态:'+network_state;

来看看navigator.connection的目前浏览器支持情况:

情况很不乐观啊,几乎没什么用。

马上点击测试Demo>>

本文由 w3cmark_前端笔记 版权所有,转载时请注明出处。
注明出处格式:w3cmark (http://www.w3cmark.com/2016/442.html)

分享到:

关注w3cmark
微信公众号 w3cmark_com