2017-09-27 15 views
0

in Ionic howアプリでは、ロケーションが有効な場合に自動リフレッシュビューを実行できます。イオン2リフレッシュビュー

アプリが起動し、私はアプリを殺した後、上の場所を回し、位置を取得するために、再度アプリを起動しなければならない時に場所が有効でない場合、これは私のコード

this.platform.ready().then((readySource) => { 
      diagnostic.isLocationAvailable().then(
       (isAvailable) => { 
       console.log('Is available? ' + isAvailable); 
       this.location.getPostion(); 
       this.location.getCity(location.lat, location.lng); 
       }).catch((err) => { 
       console.log(err); 
       console.log("Please enable your location"); 
       });     
      }); 

です。場所をオンにしたときにバックグラウンドで自動的に変更する方法、アプリの更新表示と表示位置

答えて

0

要件を誤っていない限り、ユーザーの場所が利用可能になったときに追跡する必要がありますそれを再トリガする唯一の方法は、あなたがそれを有効にした後です)。

this.platform.ready()

理由は一度だけ(それのデフォルトの場所である)がapp.componentであると仮定すると呼ばれます。したがって、それはアプリの開始時に発生し、diagnostic.isLocationAvailable()はfalseに解決するか、拒否されます。

ボタンクリックを有効にしない限り、そのコードを再トリガする方法はありません。

ソリューション

watchPosition() 

https://ionicframework.com/docs/native/geolocation/#watchPosition

現在のデバイスの位置をご覧ください。観察可能な変更を解除することによって時計をクリアします。

ただし、位置が無効な場合にこれを実行するかどうかはわかりません。あなたがその位置を見ると、最初のpingを取得した後、退会することができます:

const subscription = this.geolocation.watchPosition() 
    .filter((p) => p.coords !== undefined) //Filter Out Errors 
    .subscribe(position => { 
    console.log(position.coords.longitude + ' ' + position.coords.latitude); 
    subscription.unsubsribe(); 
    }); 

場所が物理的に無効になっている場合はどうなるでしょうか。しかし、私はそこにリスナーがいるとは思わない。