zoukankan      html  css  js  c++  java
  • 判断网络问题

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

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

    1. 详细判断网络

    var wifi = true;
        var ua = window.navigator.userAgent;
        var con = window.navigator.connection;
        // 如果是微信
        if(/MicroMessenger/.test(ua)){
            // 如果是微信6.0以上版本,用UA来判断
            if(/NetType/.test(ua)){
                if(ua.match(/NetType/(S*)$/)[1] != 'WIFI'){
                    wifi = false;
                }
            // 如果是微信6.0以下版本,调用微信私有接口WeixinJSBridge
            }else{
                document.addEventListener("WeixinJSBridgeReady",function onBridgeReady(){
                    WeixinJSBridge.invoke('getNetworkType',{},function(e){
                        if(e.err_msg != "network_type:wifi"){
                            wifi = false;
                        }
                    });
                });
            }
        // 如果支持navigator.connection
        }else if(con){
            var network = con.type;
            if(network != "wifi" && network != "2" && network != "unknown"){  // unknown是为了兼容Chrome Canary
                wifi = false;
            }
        }
    window.networkWIFI = wifi;

    2. 仅判断有无网络

            //判断网络状态
                var EventUtil = {
                    addHandler: function (element, type, handler) {
                        if (element.addEventListener) {
                            element.addEventListener(type, handler, false);
                        } else if (element.attachEvent) {
                            element.attachEvent("on" + type, handler);
                        } else {
                            element["on" + type] = handler;
                        }
                    }
                };
                EventUtil.addHandler(window, "online", function () {
    //        alert("Online");
                });
                EventUtil.addHandler(window, "offline", function () {
                    alert("您已处于离线状态");
                });
  • 相关阅读:
    Ceph 之RGW Cache
    Ceph 之RGW Pub-Sub Module
    Ceph 之RGW Data Layout
    RocksDB 之Write Ahead Log(WAL)
    Ceph 之 Background on http frontends
    Ceph 之Multisite 下的bucket reshard
    Ceph之PG数调整
    Ceph之对象存储网关RADOS Gateway(RGW)
    window mysql重启、忘记密码等操作
    selenium处理HTML5视频播放未能自动播放解决办法
  • 原文地址:https://www.cnblogs.com/yuan619821/p/8404437.html
Copyright © 2011-2022 走看看