在移动项目,有时候需要检测当前的状态是否是在wifi网络下,那js可以检测出这种状态吗?
我们可以试下用window.navigator.connection来检测,另外微信6.0版本以上,UA有个NetType,6.0版本以下,可以用微信私有接口WeixinJSBridge:
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;
|