2014-09-22 10 views
7

Mam podobne wymaganie jak w poniższym linku, ale muszę sobie z tym poradzić za pomocą JavaScript. gdzie muszę wykryć, czy mobilne połączenie internetowe to 2g/3g czy to jest WIFI. na podstawie połączenia muszę wykonywać operacje diffent .. uwaga: mobile może b dowolnego systemu operacyjnego, takiego jak andriod/iOS/BB .. muszę obsługiwać dowolny mobilny system operacyjny.jak wykryć połączenie mobilne jest 2G/3G/WIFI przy użyciu javascript

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

żądania mistrzami mi pomóc z wejść. dzięki :)

+0

możliwe duplikat [? Jak mogę sprawdzić typ połączenia (WiFi/LAN/WWAN) z wykorzystaniem HTML5/JavaScript] (http://stackoverflow.com/questions/11701328/how-do-i-check-connection-type-wifi-lan-wwan-using-html5-javascript) –

Odpowiedz

15

Network Information API (Jest to eksperymentalna technologia):

Sieć Informacji API dostarcza informacji na temat systemu związku, który jest w perspektywie ogólnego rodzaju połączenia (na przykład „wifi” "komórkowy" itp.). Można go użyć do wybrania zawartości o wysokiej rozdzielczości lub treści o niskiej rozdzielczości na podstawie połączenia użytkownika. Cały interfejs API polega na dodaniu interfejsu domxref ("NetworkInformation") i jednej właściwości do interfejsu 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

Mam nadzieję, że jest to obsługiwane w przyszłości, chociaż podejrzewam może otworzyć pewne luki w zabezpieczeniach. –

+0

To nie jest obsługiwane na urządzeniach Mac. Nie polecam używania navigator.connection –

-3

napisałem małą przydatność do tego celu. Można spróbować tu http://ashanbh.github.io/detectClientSpeed/example2.html i widelec go na github: https://github.com/ashanbh/detectClientSpeed

Zastosowanie:

<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

Jest to niedokładny sposób wykrywania prędkości pobierania, a nie typu połączenia. Jest kilka zmiennych, które wchodzą w portret po wykryciu prędkości pobierania, z których jedną jest opóźnienie. –

+0

Prawda. Wykrywa prędkość, a nie typ połączenia. Jednak praktycznie mówiąc, kiedy decyduję się włączyć/wyłączyć funkcję po stronie klienta, zależy mi bardziej na faktycznej dostrzeganej prędkości. –

+0

Mam nadzieję, że zdasz sobie sprawę z opóźnień, wahań i ograniczeń przepustowości w sieciach może ograniczyć jakąkolwiek formę sieci; dzięki czemu ta forma wykrywania jest bezużyteczna. –

Powiązane problemy