2014-09-22 112 views
7

我有一個類似的要求,如下面的鏈接,但我必須通過使用JavaScript來處理它。在那裏我必須檢測移動互聯網連接是否是2g/3g或者是WIFI。基於連接,我必須執行不同的操作.. 注意:移動可以像任何操作系統像安卓/ iOS/BB ..我需要處理任何移動操作系統。如何檢測移動連接是使用javascript的2G/3G/WIFI

Is there a way to detect what kind of connection I'm using ? WiFi, 3G or Ethernet?

請求高手幫我輸入。謝謝:)

+0

可能重複[?如何查看使用HTML5/JavaScript的連接類型(無線/ LAN/WWAN)] (http://stackoverflow.com/questions/11701328/how-do-i-check-connection-type-wifi-lan-wwan-using-html5-javascript) – 2014-09-22 06:52:31

回答

15

Network Information API(這是一個實驗技術):

網絡信息API提供有關係統的 連接,這是一般的連接類型(例如,「無線網絡連接」的長期信息, '蜂窩'等)。這可用於根據用戶的連接選擇高清內容 或低清內容。整個 API由添加domxref(「NetworkInformation」)接口和Navigator接口的單個​​屬性組成: Navigator.connection。

var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection; 
var type = connection.type; 

function updateConnectionStatus() { 
    alert("Connection type is change from " + type + " to " + connection.type); 
} 

connection.addEventListener('typechange', updateConnectionStatus); 
+0

我希望這是支持在未來,但我懷疑它可能會打開一些安全漏洞。 – 2015-09-15 15:44:37

+0

這在Mac設備上不受支持。我不建議使用navigator.connection – 2016-03-01 08:00:06

-3

我寫了一個小工具來做到這一點。你可以在這裏嘗試 http://ashanbh.github.io/detectClientSpeed/example2.html 和叉它在GitHub上:https://github.com/ashanbh/detectClientSpeed

用法:

<script src="scripts/require.js"></script> 
<script> 
     requirejs(['scripts/detectSpeed'], function (detectSpeed) { 

      //Callback to receive timing information 
      var callback = function (timings) { 
       console.log(timings); 
      } 
      detectSpeed.startSpeedCheck("https://s3-us-west-1.amazonaws.com/amit.shanbhag/3g/coffee-apple-iphone-laptop.jpg", callback); 

     }); 
</script> 
+0

這是檢測下載速度而不是連接類型的不準確方法。在檢測下載速度時會有幾個變量進入肖像,其中一個是延遲。 – 2015-09-15 15:43:36

+0

是的。它檢測速度,而不是連接類型。但是,實際上,當我決定在客戶端打開/關閉功能時,我更關心實際感知的速度。 – 2015-10-05 03:19:57

+0

我希望您能意識到網絡中的延遲,抖動和帶寬限制會限制任何形式的網絡;使這種形式的檢測無用。 – 2015-10-05 17:29:42

相關問題