2014-06-27 21 views
5

Sto lavorando su un'applicazione PhoneGap. Voglio sincronizzare i dati nell'applicazione dal server, ma ha bisogno di una buona forza di connessione. Quindi ho bisogno di scoprire la forza di connessione della connessione.get Connection Strength in Phoneegap

Ci sono un sacco di documentazione di Internet per trovare il tipo di connessione utilizzando PhoneGap, ma non riesco a trovare alcun aiuto per quanto riguarda la forza di connessione

C'è un modo per trovare la forza di connessione in PhoneGap, non voglio usare qualsiasi codice di piattaforma nativo perché funzionerà su molte piattaforme, quindi c'è un modo per scoprire la connessione (2g, 3g, 4g, wifi ecc ...) in phonegap ????

+0

ehi, vi stiamo chiedendo di acquisire la forza della rete non il diritto di stato? Voglio dire che non stai chiedendo di rilevare il tipo di connessione perché è già disponibile sul documento API Phonegap. – gokhanakkurt

+0

@gokhanakkurt Sì, ho bisogno di ottenere la forza della connessione, se è buono, eseguirò alcune operazioni di rete, altrimenti visualizzerò un messaggio di errore di connessione lenta. – Rohit

+0

API Phonegap non fornisce alcun plugin per questo scopo. Dovresti scrivere il tuo plugin che interagisce con il codice JavaScript. – gokhanakkurt

risposta

3

Non esiste alcun modo standard per trovare la forza di connessione anche in Android, quindi uso solo un codice javascript per ottenere la velocità della connessione internet, non c'è problema con nessuna piattaforma Android, iOS o Windows phone8 ecc. Non serve sviluppare un plugin separato per ogni piattaforma.

ho appena scritto come:

<script> 
      var downloadSize = 244736; 
      var imageAddr = "http://farm6.static.flickr.com/5035/5802797131_a729dac808_b.jpg" + "?n=" + Math.random(); 
      var startTime, endTime = 0; 
      var download = new Image(); 

      download.onload = function() { 
       endTime = (new Date()).getTime(); 
       showResults(startTime, endTime, imageAddr, downloadSize); 
      } 

      startTime = (new Date()).getTime(); 
      download.src = imageAddr; 

     }); 

     function isConnected(){ 
      var xhr = new XMLHttpRequest(); 
      var file = "http://api.androidhive.info/music/images/adele.png"; 
      var r = Math.round(Math.random() * 10000); 
      xhr.open('HEAD', file + "?subins=" + r, false); 
      try { 
       xhr.send(); 
       if (xhr.status >= 200 && xhr.status < 304) { 
        return true; 
       } else { 
        return false; 
       } 
      } catch (e) { 
       return false; 
      } 
     } 

     function showResults(startTime, endTime, imageAddr, downloadSize) { 
      if(isConnected){ 
       var duration = (endTime - startTime)/1000; //Math.round() 
       var bitsLoaded = downloadSize * 8; 
       var speedBps = (bitsLoaded/duration).toFixed(2); 
       var speedKbps = (speedBps/1024).toFixed(2); 
       var finalSpeed = (speedKbps/10); 

       if(finalSpeed < 40){ 
        // Slow Internet 

       } else if(finalSpeed >=40 && finalSpeed < 80){ 
        // Avg Internet 

       } else if(finalSpeed >= 80){ 
        // Fast Internet 
       } 
      }else{ 
       //No intenet 
      }  
     } 
    </script> 
1

Finora so che è necessario scrivere un plug-in personalizzato e gestire il codice nativo. Non esiste un modo diretto per ottenere l'intensità del segnale fino ad ora in PhoneGap.