2017-02-07 9 views
0

こんにちは私はこれについて多くのテストラウンドを行いましたが、正確な解決策を得ることができず、ネットワークインフォメーションプラグインからの遅れブロードキャストCordova/Ionic

私はイオンで私のアプリではなく、ネットワークのためのプラグインを使用してIonic2

がされたのです「ネットワーク情報」コルドバ - プラグインのネットワーク情報は、「ネットワーク情報を」1.3.0 Link

シナリオ:

ユーザーがアプリを最小化して背景に移動し、WiFi、モバイルデータなどのネットワークソースをオフにして、プラグインのアプリのホームページに戻ったとき。最初の場所でネットワークためにtrueを返すと、いくつかの時間後にネットワークが

オフライン期待される動作である今言っ 放送を取得 方法:

は、無線LAN、モバイルデータオンまたはオフのようなネットワークソースを回す上でブロードキャストを受けるべきです私はアプリで処理することができます。

app.jsで$ ionicPlatform.readyでイベントをネットワークに対応放送のための私のソースコードを以下に記載されて:

//listen for Online event 
     $rootScope.$on('$cordovaNetwork:online', function (event, networkState) 
     { 
      console.log("BR got inside online -- App " + networkState); 
      $rootScope.isonlineState = true; 
      console.log("BR got inside online getNetwork-- App " + $cordovaNetwork.getNetwork()); 
      console.log("BR got inside online isOnline-- App " + $cordovaNetwork.isOnline()); 
     }) 

    // listen for Offline event 
    $rootScope.$on('$cordovaNetwork:offline', function (event, networkState) 
    { 
     console.log("BR got inside offline -- App " + networkState); 
      $rootScope.isonlineState = false; 
     console.log("BR got inside offline getNetwork-- App " + $cordovaNetwork.getNetwork()); 
     console.log("BR got inside offline isOnline-- App " + $cordovaNetwork.isOnline()); 
     }) 

私が権利を取得することができ、このシナリオを何度もデバッグまだありませんiPhone上でのみ動作します。

あなたの経験を共有してください。問題を解決するのに役立ちます。 ありがとうございます。

答えて

0

は最後に闘争の数日後、私はそれのBrodcastReceiversよりもあなたが他の通知には、このプラグインでは方法がないことを考え出し、罰金thatsのが、オフネットワークであなたのアプリがはフォアグラウンドに背景から来て、あなたはAPIを呼び出すとあなたのアプリケーションのページはAPIを呼び出そうとしています(プラグインメソッドはisOnlineをtrueに戻します)ので、ネットワークがなく、数秒後にはブロードキャストを受け取らないようにしてください。あなたは今オフラインです

ソリューション

だから、最良の方法は、バックグラウンドからフォアグラウンドにあなたのページへの更新を呼び出すことですBroadcastReceiverから..ですネットワークイベントに基づいて、ページを更新するために、別のあなたのローカルBrodacstReceiverを呼び出します。

私はIonicフォーラムにも質問を掲載しましたが、建設的なものは何も受け取りませんでした。

これは他の問題に直面していて、その問題を解決するために役立ちます。

関連する問題