web-dev-qa-db-ja.com

Cordovaアプリでインターネット接続を確認する方法は?

navigator.onLineなどのいくつかの提案を試みましたが、飛行モードでも、私のアプリはオンラインで「考えている」と考えています。

私もajaxでいくつかの提案を見つけましたが、外部のWebページを開くためにオンラインになっているかどうかを確認したいだけです。そうでない場合、「デバイスはオフラインのようです。接続を確認してください!」などのメッセージを表示する予定です。

11
Geziel Carvalho

最適なアプローチは、cordova network information pluginを使用することです。これにより、作業がシームレスに行われます。このプラグインは、デバイスの携帯電話とWi-Fi接続、およびデバイスにインターネット接続があるかどうかに関する情報を提供します。

同じプラグインの詳細については、このプラグインの 公式githubページ をご覧ください。それが役に立てば幸い。

14
Gandhi

プラグインをダウンロードします: 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);  

オフライン

イベントは、アプリケーションがオフラインになり、デバイスがインターネットに接続されていないときに発生します。

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

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();