получить силу соединения в Phonegap

#android #cordova #phonegap-plugins #cordova-plugins

#Android #кордова #phonegap-плагины #cordova-плагины

Вопрос:

Я работаю над приложением phonegap. Я хочу синхронизировать данные с приложением с сервера, но для этого требуется хорошая сила соединения.Итак, мне нужно выяснить силу соединения соединения.

В Интернете есть много документации для поиска типа соединения с использованием phonegap, но я не могу найти никакой помощи относительно силы соединения

Есть ли какой-нибудь способ определить силу соединения в phonegap, я не хочу использовать какой-либо собственный код платформы, потому что он будет работать на многих платформах, так есть ли какой-нибудь способ узнать силу соединения (2g, 3g, 4g, wifi и т. Д.) В phonegap????

Комментарии:

1. эй, вы просите получить силу сети, а не статус, верно? Я имею в виду, что вы не просите определять тип соединения, потому что он уже доступен в документе Phonegap API.

2. @gokhanakkurt Да, мне нужно получить силу соединения, если это хорошо, тогда я выполню какую-нибудь сетевую операцию, в противном случае отображается сообщение об ошибке медленного соединения.

3. Phonegap API не предоставляет никаких плагинов для этой цели. Вы должны написать свой собственный плагин, который взаимодействует с кодом JavaScript.

Ответ №1:

Также нет стандартного способа узнать силу соединения android , поэтому я просто использую javascript код для определения скорости интернет-соединения, Нет проблем с какой-либо платформой android ios или windows phone 8 т. Д., Нет Необходимости разрабатывать отдельный плагин для каждой платформы.

Просто используйте следующее scripts :

 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 amp;amp; 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 = Number( ( bitsLoaded / duration ).toFixed( 2 ) );
        var speedKbps = Number( ( speedBps / 1024 ).toFixed( 2 ) );
        var finalSpeed = ( speedKbps / 10 );

        if ( finalSpeed < 40 ) {
            // Slow Internet

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

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

Ответ №2:

Пока я знаю, что вам нужно написать пользовательский плагин и работать с машинным кодом. До сих пор не существует прямого способа получить уровень сигнала в phonegap.