获得电话间隙的连接强度

问题描述 投票:5回答:2

我正在研究电话间隙应用程序。我想将数据从服务器同步到应用程序中,但是它需要一个良好的连接强度。因此,我需要找出连接的连接强度。

有很多有关使用phonegap查找连接类型的Internet文档,但是关于连接强度我找不到任何帮助

有没有办法在phonegap中找到连接强度,我不想使用任何本机平台代码,因为它将在许多平台上正常工作,所以有没有办法找出连接(2g,3g,4g ,wifi等...)手机间隙的强度????

android cordova phonegap-plugins cordova-plugins
2个回答
3
投票

[android中也没有任何标准的方法可以找到连接强度,所以我只用javascript代码来获得Internet连接的速度,androidios或任何平台都没有问题。 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 && 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 && finalSpeed < 80 ) {
            // Avg Internet

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

1
投票

到目前为止,我知道您必须编写一个自定义插件并处理本机代码。到目前为止,在phonegap中还没有任何直接的方法来获得信号强度。

© www.soinside.com 2019 - 2024. All rights reserved.