私は現在、AngularJS /イオン3.背景ジオロケーションのプラグイン:トラックの場所と更新データベースは5分ごと
を使用してモバイルアプリを開発しています私のユーザーは100メートルの半径内にある場合、私は、すべての時間で追跡する必要がありますどこのユーザーが自分の家の場所にいるのか、誰がそうでないのかを知る必要があります(、アプリがバックグラウンドで実行中であっても、閉じる/終了しても)。
私はこれを実現するために、イオンネイティブの背景ジオロケーションプラグインとcordova-plugin-background-geolocationを使用しました。私の計画は、ユーザーのジオロケーションを5分ごとに確認し、それを家に持ち帰りなさい。
ケース1)2つの場所の距離が<の場合、私はユーザーが「自宅」であることを知っています。その後、私のデータベース(Firebase)のユーザーノードを更新して、ユーザーをisAtHome: true
とマークし、現在のタイムスタンプを追加します。
ケース2)ユーザーが自宅の場所から100m以内にいない場合は、彼にisAtHome: false
とマークし、現在のタイムスタンプを追加します。
私は現在の信号を受信したことを知る必要があるため、ユーザーが移動しなかった場合でもデータベースを更新する必要があります。それ以外の場合、私は彼が彼のスマートフォンを動かさなかったり、止めたりしなかったかどうかわかりません。
私の知りたいことは、私のユーザが自宅にいる場合、isAtHome
の属性をチェックし、true
に設定されている場合は、タイムスタンプをチェックして、このデータは過去15分間に書かれたものである。
私はさまざまなことを試しましたが、Cordova Background Geolocation Pluginを使ってこれを実現する方法と、それが可能なのかどうかはわかりません。
私の質問は:
それは、ユーザーが5分ごとに地理位置情報確認することが可能です(でもバックグラウンド/終了状態で)、私のfirebase DBを適宜更新関数を呼び出しますか?説明したように、ユーザーが過去5分間に移動しなかった場合でも、その場所を受け取る必要があります。
可能でない場合:誰かが別の方法で要件にアプローチする方法のアイデアを持っていますか?
ありがとうございました!
ありがとう、Gabriel。私は同様の解決策について考えました。しかし、問題は次のとおりです。デバイスの位置が20分間変化しない場合、 'yourSavingCodeFunction()'はこの時間枠内で実行されません。だから私のDBは更新されず、私は現在の位置情報を持っていません。移動していないユーザーとスイッチオフされた携帯電話の違いを、どうすればわかりますか?ユーザーが自宅にいるかどうかはどうすればわかりますか? –
ユーザーが移動していない場合でも、5分ごとに場所を更新できないのはなぜですか?移動する場合にのみ更新する必要があり、移動しない場合に20分かかる場合がありますか?ユーザーが移動していない場合でも更新する方が、現在の場所を確認して計算する必要がないため、手順が1つ少なくなっているようです。 –
実際、このプラグインは、オーナーがここに記載しているように、iOSのx分ごとに場所を更新することを許可していません:https://forum.ionicframework.com/t/get-location-background-and-foreground-every-5 -minutes-for-private-app/31101/9 –