【Cordova】アプリがオフラインになったことを検知する方法

タイトル通り、今回はアプリ(というより、アプリが実行されている端末?)がオフラインになったことを検知する方法についてです。
現在開発中のアプリは、当然ながらデータ通信が行われているので、アプリ利用時は常にオンラインである必要があるのですが、何らかの原因でオフラインになったときに、それを通知して、ネットワーク環境の確認を促すようにしたかったためです。

 

今回は、下記のCordovaのページを参考にしました。

オフライン – Apache Cordova
https://cordova.apache.org/docs/ja/3.1.0/cordova/events/events.offline.html

実装方法はとても簡単で、プラグインの追加なども不要!
私の環境では、index.js ファイル内に、下記のコードを追加するだけでした。

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

function onOffline() {
    // オフラインの時に実行したい処理
}

サンプルコードを見ると、追加ファイルは index.html である場合もあるようです。
こちらは、開発環境に合わせて変更してください。

あとは、onOffline() 内に実行したい処理を記述すればOKです。
私は、Toast でエラーメッセージを表示しています。

なお、iOS の初回起動時、最初の オフラインイベントは少なくとも起動に 1秒かかりますとのこと。
こちらは仕様のようなので、諦めて受け入れるのが良さそうです。
また、Android や iOS は問題ありませんが、Windows Phone 7 など、端末によっては、オフラインが検知できないこともあるようなので、対応しているか十分注意してください。
…Android と iOS が対応していたら、ほぼほぼ大丈夫だとは思いますけどね。

 

以上、アプリがオフラインになったことを検知する方法でした。
プラグインも不要なので、実装しておいても良いと思います。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG