問題点
Monacaにて、AndroidとiOS上でオンラインかオフラインを判定する処理を実装しておりました。
参考サイト: http://docs.monaca.mobi/3.5/ja/reference/phonegap_34/ja/connection/
ここで、iOSでは、判定が出来るのに、Androidでは判定出来ない(ロジックが通らない)事がありまして、調べましたので、共有させて頂きます。
実機: SC-02C (Ver.4.0.3)
var networkState = navigator.connection.type;
if (networkState != Connection.NONE) {
alert("オンライン!");
} else {
alert("オフライン!");
}
現象・解決方法
取り敢えず、どこでこけているのか、色々、確認していきました。
その結果、typeof Connection // -> undefined
こんな事実が分かりました。
Connectionが定義されていない。。?
それを元に調べました所、我らがStackOverflow様 にて発見しました。
参考サイト: http://stackoverflow.com/questions/25672502/phonegap-network-connection-cannot-read-property-type-of-undefined
Cordovaのnetwork-informationのプラグインのバージョンを0.2.7 にしてください、との事みたいですね。
でも、Monacaのnetwork-informationのプラグインのバージョンは 0.2.10 (2015/09/17 現在)だそうで。。
Monacaでは、有料会員で無ければ、Cordovaの外部プラグインを自分でインストールしてきて、組み込む、という事が出来ません。
色々悩んだ挙句、、
var networkState = navigator.connection.type;
if (networkState != "none") {
alert("オンライン!");
} else {
alert("オフライン!");
}
としました。
一応、このnetworkStateの型がStringだったので、一先ずはこれで良いかな。。。と。
ただ・・・だっさいよね(´・ω・`)