特定のターゲット精度が得られるまでデバイスの位置を取得する phonegap アプリ用に開発している JavaScript スクリプトがあります。目標が達成されない場合、スクリプトは自分自身を永遠に呼び戻します。通常、場所と最後に使用した時間に応じて 1 ~ 8 回の試行が必要で、その後はすべて正常に機能します。私が抱えている問題は、一部のデバイスがそのしきい値に到達しないことです (アプリにとっては問題ありません) が、このスクリプトがバックグラウンドで実行され続けるため、バッテリー寿命が台無しになります。では、クリック イベント (送信ボタン) でこのスクリプトを強制終了するにはどうすればよいでしょうか。送信ボタンを押すと変化するグローバル変数を設定することを考えていました。何かのようなもの:
if (var != 'quit') {
//function
} else {
///nothing
}
function getlocation(position) {
document.getElementById("lat").value = (position.coords.latitude);
document.getElementById("long").value = (position.coords.longitude);
document.getElementById("accu").value = (position.coords.accuracy);
var accuracy = parseInt(position.coords.accuracy, 10);
if (accuracy <= 50) {
$('#scanner').removeClass('littlered').addClass('littlegreen');
} else {
setTimeout(navigator.geolocation.getCurrentPosition(getDroplocation, onError, {
enableHighAccuracy: true
}), 3000);
}
}
しかし、これは機能していません。グローバル変数を設定しましたが、何も起こりません。前述のアイデアを実現するためのより良い方法や方法はありますか? 私は正しい軌道に乗っていますか?