2 zjl199303 zjl199303 于 2016.09.09 09:11 提问

移动端开发 区分浏览器,不同浏览器获取网络状态的问题
  1. 区分浏览器:微信,uc,QQ,谷歌 网上常见的区分手机浏览器的方法不对。
 var u = navigator.userAgent, app = navigator.appVersion;
    if(u.indexOf('Mac') > -1){
        return true;
    }else {
        return false;
    }
  这里qq 浏览器也不识别,会报错。
if(navigator.userAgent.indexOf('MQQBrowser') > -1){ }
    这里可以区分出QQ,谷歌。但是这两个浏览器又怎么区分呢?

2,获取当前网络状态:wifi 非wifi

     var netLink = navigator.connection.type;
    if(netLink == 2 || netLink == "wifi"){   }
微信,QQ浏览器打开都会报错,他不支持  navigator.connection 这个API.
 还有什么办法可以在QQ,谷歌等浏览器获取当前的网络状态吗?

1个回答

showbo
showbo   Ds   Rxr 2016.09.09 09:26

1,return要写入函数里面,不在函数里面你这个代码直接执行当然报错。没什么区别,都是webkit核心的
2,浏览器没提供无法获取,使用某个特定属性前需要先判断是否支持再调用

var netLink = navigator.connection&&navigator.connection.type;

zjl199303
zjl199303 2.navigator.connection 这个就会报错,然后这句函数后面的js就不能执行了。这个我测着暂时是只有QQ,谷歌不支持。所以需要判断出这两个浏览器。主要是有些字体在这两个浏览器的有点偏上或偏下,也需要专门在设置样式。
大约一年之前 回复
zjl199303
zjl199303 1.return 是写在函数里的。我是用 if(ua.match(/MicroMessenger/i) == 'micromessenger'){} 判断出微信的。
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片