2017年4月12日水曜日

ネットワークがつながるまで繰り返す


Phonegap Network Connection - Cannot read property 'type' of undefined
http://stackoverflow.com/questions/25672502/phonegap-network-connection-cannot-read-property-type-of-undefined

Androidのエミュレータ環境だと、起動後すぐにアプリが開くので、
ネットワークにつながっていない状態の場合、情報取得などがうまくいかないです。

setTimeoutで500ms程度待つという解決法があったのですが、稀にまだつながっていない場合があったので、
ネットワークを認識するまでsetIntervalでループさせる方法を実装しました
(ある程度のリトライでエラー表示をさせるなどの処理が必要になりそうですが)。

------
  console.log('networkState => ' + navigator.connection.type);
  var connectionDetect = setInterval(function(){
      console.log(navigator.connection.type)
      if(navigator.connection.type != undefined && navigator.connection.type != 'none'){
        clearInterval(connectionDetect);
        console.log('networkState => ' + navigator.connection.type);
        //つながったときの処理
      }
  }, 500);