navigator.onLineなどのいくつかの提案を試みましたが、飛行モードでも、私のアプリはオンラインで「考えている」と考えています。
私もajaxでいくつかの提案を見つけましたが、外部のWebページを開くためにオンラインになっているかどうかを確認したいだけです。そうでない場合、「デバイスはオフラインのようです。接続を確認してください!」などのメッセージを表示する予定です。
最適なアプローチは、cordova network information plugin
を使用することです。これにより、作業がシームレスに行われます。このプラグインは、デバイスの携帯電話とWi-Fi接続、およびデバイスにインターネット接続があるかどうかに関する情報を提供します。
同じプラグインの詳細については、このプラグインの 公式githubページ をご覧ください。それが役に立てば幸い。
プラグインをダウンロードします: 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);
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();