0

phonegap アプリケーションにこのコードがあります

var options = {timeout: 180000 };
navigator.geolocation.watchPosition(onSuccess, onError, options);

本来は 3 分ごとに発射されるはずですが、問題は 1 秒ごとまたは 5 秒ごとに発射されることです。つまり、時間間隔に一貫性がありません。正確な時間間隔で結果を取得する他の方法はありますか? また、バックグラウンド モードで実行した場合、この間隔を使用して場所を追跡し続ける方法はありますか。ありがとうございました。

4

1 に答える 1

0

Timeout は、現在の位置を取得するための呼び出しから返されるまでの許容最大時間を設定するだけです。これは、現在の位置を送信する頻度には影響しませんが、タイムアウト (この場合は 3 分) 内に位置を取得できない場合に onError を発生させます。

http://docs.phonegap.com/en/3.0.0/cordova_geolocation_geolocation.md.html#geolocationOptions

バックグラウンドモードについては、Android と iPhone で可能です。Android では、これがデフォルトの動作のようです。iPhone の場合、Xcode で [ターゲット] -> [情報] -> [右クリックして行を追加] に移動します。[必要なバックグラウンド モード] を選択し、+ 記号をクリックして、値として [アプリが位置情報の更新を登録する] を選択します。

編集: 3 分ごとに地理的位置を確認することに本当に設定されている場合 (GPS の応答ほど速くはない)、setInterval() を使用して、watchPosition を使用する代わりに geolocation.getCurrentPosition を呼び出す関数を作成することをお勧めします。

于 2013-08-15T00:16:58.937 に答える