monacaでオンラインかオフラインかを判定する方法
monaca でサーバーと通信する必要のあるアプリを作成していると、通信時のエラー処理をする必要があります。 電波がない場所や、機内モードで使われる可能性を考えると、毎回通信させてエラーの処理をするよりも、まずスマートフォンがオンライン中なのかオフライン中なのかを判定するようにラップしてあげる方がスマートです。
オンライン・オフラインの判別方法
オンライン・オフラインの識別は、addEventListener を使います。具体的な書き方は以下の通りです。
// デバイスのインターネット接続が切れた時に、イベントが呼び出されます。 document.addEventListener("offline", onOffline, false); function onOffline() { // オフライン イベントの処理 } // デバイスがインターネットに接続された時にイベントが呼び出されます。 document.addEventListener("online", onOnline, false); function onOnline() { // オンライン イベントの処理 }
それぞれのイベントリスナーは、インターネット接続に変化があった時に発火します。このイベントリスナーを使って、オンライン・オフラインをするフラグを作成します。
// オフラインの判定 document.addEventListener("offline", onOffline, false); function onOffline() { onlineFlag = false; } // オンラインの判定 document.addEventListener("online", onOnline, false); function onOnline() { onlineFlag = true; } if (onlineFlag) { // 通信処理 } else { // 通信不能時の処理 }
こんな具合に、処理の判定ができます。通信する必要のあるアプリを作る時には、使えるイベントリスナーだと思います。