如何检查Cordova应用程序上的Internet连接?

时间:2016-08-02 12:30:41

标签: android ios cordova networking connection

我尝试了一些建议,例如 navigator.onLine ,但即使在飞行模式下,我的应用也“认为”在线。

我也找到了一些关于ajax的建议,但我只是想检查一下我是否在线打开外部网页。如果没有,我打算显示一条消息,例如“您的设备似乎处于脱机状态。请检查您的连接!”。

5 个答案:

答案 0 :(得分:12)

最好的方法是使用cordova network information plugin无缝地完成工作。此插件提供有关设备蜂窝和wifi连接的信息,以及设备是否具有互联网连接。

您可以查看此插件的official github page以获取更多信息。希望它有所帮助。

答案 1 :(得分:4)

下载插件:https://www.npmjs.com/package/cordova-plugin-network-information

试试这个。

document.addEventListener("deviceready", function(e){
        console.log(navigator.connection.type);
        document.addEventListener("offline", function(e){
                            alert("NO_NETWORK");

        }, false);  
}, false);  

<强>离线

当应用程序脱机并且设备未连接到Internet时,事件将触发。

document.addEventListener("offline", yourCallbackFunction, false);

答案 2 :(得分:2)

this

function checkConnection() {
    var networkState = navigator.connection.type;

    var states = {};
    states[Connection.UNKNOWN]  = 'Unknown connection';
    states[Connection.ETHERNET] = 'Ethernet connection';
    states[Connection.WIFI]     = 'WiFi connection';
    states[Connection.CELL_2G]  = 'Cell 2G connection';
    states[Connection.CELL_3G]  = 'Cell 3G connection';
    states[Connection.CELL_4G]  = 'Cell 4G connection';
    states[Connection.CELL]     = 'Cell generic connection';
    states[Connection.NONE]     = 'No network connection';

    alert('Connection type: ' + states[networkState]);
}

checkConnection();

答案 3 :(得分:0)

您可以使用此plugin

然后您可以在应用程序中的任何地方使用它,而无需导入

if(navigator.connection.type === 'none') {
   alert('there is no internet')
 }

,您可以将其添加到setInterval

  setInterval(() => {
        if(navigator.connection.type === 'none') {
            alert('there is no internet')
        } }, 5000);

“ avigator.connection.type”还有另一个值 例如,当有互联网时,“ avigator.connection.type”的值就是连接的类型(wifi,4g,3g,Windows上的以太网....)

答案 4 :(得分:0)

您可以使用 cordova-plugin-network-information 插件检查您的安卓设备与互联网的连接。此外,如果您想在互联网的可用性上执行某些任务,请参见下文:

if (navigator.connection.type == "none") {
    alert("No Internet Connection...");
    
}
else {
    yourdesiredFunction();
}