私はPhoneGapでジオロケーションAPIを使用して移動ルートを追跡しているアプリケーションを開発しました。 navigator.geolocation.watchPosition(function(position)
を介して一定の間隔で位置を取得してポリラインを更新します。しかし、問題はそれがバックグラウンドで機能していないということです。つまり、(別のアプリケーションを開いてバックグラウンドで実行しても)ポリラインは更新されません。navigator.geolocation.watchPosition(function(position)
関数だから、Cordova-plugin-background-mode
このプラグインを使ってアプリを実行しようとしましたが、バックグラウンドでアプリを実行していて、再び起動していませんでしたnavigator.geolocation.watchPosition(function(position)
関数は、 .e(バックグラウンドモードでアプリを実行するためにプラグインをインストールする必要はありませんでした)。だから私はバックグラウンドモードでの位置を得るこの問題を解決するために私を助けてください。そして、もし私がこのCordova-plugin-mauron85-background-geolocation
プラグインを使用すれば、私は監視位置を通過していたので、どのようにポジションを取ることができますか?アプリがフォアグラウンドで実行されている場合はどうすればよいですか? watchPosition
関数などを使用する必要がありますか?ジオロケーションAPIを使用してphonegapアプリケーションをバックグラウンドで実行しているときに特定の間隔でデバイスの位置を取得するには
6
A
答えて
1
location pluginを掘り下げたい場合があります。彼らは彼らが問題を解決したと思っているようです。
速いfiddleとこれを表示するためのアクセス権がある電話機でのテストは、phonegapの問題ではありません。これはOSの問題です。ほとんどの電話機は、バックグラウンドアクティビティ、特にWebブラウザアクティビティを中断するように最適化されています。ネイティブイベントに結び付けて、必要な動作を得るのが最善の方法です。
navigator.geolocation.watchPosition(positionChanged, err, options);
携帯電話ではバックグラウンドタスクでもすべての接続が開いています。あなたは、拒否しないが応答することができないサーバーへのajax呼び出しを行い、タイムアウトハンドラを追加し、必要な間隔を設定して、ajaxタイムアウトハンドラで場所を確認し、セットアップ新しい呼び出し。
幸運を祈る!
0
cordova-plugin-background-mode
でサンプルあります:あなたは、バックグラウンドでの間隔で実行するためのAJAXハックをしようとした場合はお知らせ@everyone
var backgroundGeoLocation = window.plugins.backgroundGeoLocation;
function startGetLocation() {
var callbackFn = function(location) {
console.log('[js] BackgroundGeoLocation callback: ' + location.latitude + ',' + location.longitude);
var latitude = location.latitude;
var longitude = location.longitude;
var pontos = [];
if($localStorage.getPontosGps() && $localStorage.getPontosGps().pontos){
pontos = $localStorage.getPontosGps().pontos;
}
$log.log('lat: ' + latitude);
$log.log('long: ' + longitude);
if (!_.find(pontos, {
latitude: latitude,
longitude: longitude
})) {
pontos.push({
latitude: latitude,
longitude: longitude,
velocidade: null
});
$localStorage.setPontosGps({
isRunning: true,
pontos: pontos
});
}
backgroundGeoLocation.finish();
};
var failureFn = function(error) {
console.log('BackgroundGeoLocation error: ' + error);
};
backgroundGeoLocation.configure(callbackFn, failureFn, {
desiredAccuracy: 10,
stationaryRadius: 20,
distanceFilter: 30,
debug: false,
stopOnTerminate: false,
locationTimeout: 10,
notificationTitle: 'Title', // <-- android only, customize the title of the notification
notificationText: 'Collecting geolocation'
});
backgroundGeoLocation.start();
}
関連する問題
- 1. iPhoneで特定の時間間隔でバックグラウンドから位置を実行する方法
- 2. アンドロイドウェアを使用してデバイスの位置を取得する
- 3. アンドロイドジオロケーション使っPhoneGapのコード:私はジオロケーションのPhoneGap APIのドキュメントを使用しますが、エラーメッセージの下に取得を使用しようとしている
- 4. アプリケーションがバックグラウンドでANDROIDに入るとGPS位置を取得しない
- 5. 特定のジオメトリの位置を特定できません。ジオメトリの位置とサイズを使用してジオメトリを取得する方法はありません
- 6. iosデバイスでphonegapアプリケーションを実行する
- 7. 特定の時間間隔ごとにバックグラウンドでJavaプログラムを実行する方法は?
- 8. Phonegapを有効にするアプリケーション実行時のGPS /位置
- 9. アンドロイドの使い方フュージョンAPIを使用して位置を取得する
- 10. アプリケーションがデバイスに入るまでの特定の時間間隔でのメソッドコール
- 11. jScrollPaneを使用して特定の位置にスクロールする
- 12. PythonとGoogleシートAPIを使用してシートを特定の位置に移動
- 13. 特定の時刻に起動し、特定の間隔で実行する
- 14. fusedlocationapiを使用して、時間間隔の後に位置の更新を要求せずに位置を取得する
- 15. 特定の時間間隔のデータをPythonで取得する
- 16. libusbを使用してusb上のデバイスの位置を取得することは可能ですか?
- 17. 融合位置API - バックグラウンドで調整されていますが、時々GPS位置を取得します
- 18. TFS APIを使用してIDで特定のTestSuiteを取得
- 19. Google Adwords APIを使用して特定のAdwordsレポートに使用できるフィールドのリストを取得する
- 20. ジオロケーションAPI - 位置
- 21. PhoneGapアプリケーションを使用してiOSデバイスでプログラム的に休止
- 22. ジョブスケジューラを使用して特定の時間に、次に特定の間隔でジョブを繰り返す
- 23. 時間間隔または変位に基づいて位置更新を取得する
- 24. GPSを使用して位置を取得できません
- 25. コマンドラインオプションを使用して特定の間隔のビデオをmplayerで再生する
- 26. システムコマンドを使用してバックグラウンドで実行されているプロセスの状態を取得する方法は?
- 27. TableCellEditorを使用するとき、どのようにしてマウスクリック位置でコンポーネントを取得できますか?
- 28. GeoLocation APIを使用してJavaScriptの現在の位置を取得する
- 29. PhoneGapを使用してデバイスの画面サイズを取得するにはどうすればよいですか?
- 30. ユーザーがgpsを強制的にオフにしても、fusedloaction APIを使用してバックグラウンドで位置情報を取得する方法はありますか?
が。 –