2012-11-06 15 views
5

Platform: iOS6/OSx Lion.Phonegap, Cordova saat başı her bir saniyede bir başarı işareti.

Phonegap/Cordova'nın navigator.geolocation.watchPosition ile çalışmasına çalışıyorum.

Dokümanlar, "maximumAge" seçeneğinin sistemin konumu almasını isteyen seçenek olduğunu söylüyor. Bu seçenekler ile

Yani:

{ maximumAge: 3000, timeout: 5000, enableHighAccuracy: true } 

Ben pozisyon isteği her 3 saniyede bir ateş olacak espect?

Ve olursa olsun başarı her 1 saniyede ateşlenir bırakmaya ne maximumAge ...

Herkes lütfen açıklayabilir?

Şu anda bir setInterval ile getCurrentPosition kullanarak bu soruna çalışıyorum

+0

. Cordova 2.2 ve iOS 5.1/iOS6. iOS her saniyede patlar, Android 30 her yapar, ancak oldukça güvenilir değildir. – scald

+0

Merhaba nickhar, bu yüzden Android'de de çalışmıyor mu? Gerçekten garip, yanlış parametreler kullandığımı düşünüyordum, önceki Cordova/Phonegapp sürümlerinde bir "frekans" parametresi vardı. Teşekkürler Ciao Rob – oudoken

cevap

5

Teşekkür Bye
Rob. Sonuçların ne olabileceğinden emin değilim, ama bu bana en fazla kontrolü veriyor ve platformlar arasında en tutarlı yöntem olarak görünüyor. Aynı sorun burada aynı sorun.

// call this once 
setupWatch(3000); 

// sets up the interval at the specified frequency 
function setupWatch(freq) { 
    // global var here so it can be cleared on logout (or whenever). 
    activeWatch = setInterval(watchLocation, freq); 
} 

// this is what gets called on the interval. 
function watchLocation() { 
    var gcp = navigator.geolocation.getCurrentPosition(
      updateUserLoc, onLocationError, { 
       enableHighAccuracy: true 
      }); 


    // console.log(gcp); 

} 

// do something with the results 

function updateUserLoc(position) { 


var location = { 
    lat : position.coords.latitude, 
    lng : position.coords.longitude 
}; 

console.log(location.lat); 
console.log(location.lng); 
} 

// stop watching 

function logout() { 
    clearInterval(activeWatch); 
} 
+0

Merhaba Scald, Cevabınız için teşekkürler. Aslında WatchPosition işlevi sadece bir çağrı (zamanlayıcı ile) getCurrentPosition (cordova.js içinde baktım) almak için görünüyor. Btw Kodunuz çok yardımsever! Zamanlayıcıyı "clearInterval (activeWatch)" ile durdurduğunuzda "watchPosition" da durur mu? Eğer "setupWatch" birçok kez çağırırsanız belki "watchPosition" ile çok sayıda zamanlayıcı olacak? Çok teşekkürler Ciao Rob – oudoken

+0

Rob - kodumda kullanılan bir WatchPosition yok. Yüzey cordova'nın altında bir yerlerin benzer bir şey yaptığını anlıyorum ama bu benim için 'WatchPosition 'aramalarından çok daha iyi çalışıyor. Evet, 'clearInterval' çağrısı 'watchLocation'ı durdurur ve bu zamanlayıcıyı temizler, böylece sonraki setupwatch' çağrıları yeni bir zamanlayıcı oluşturabilir. – scald

+0

Merhaba Scald, Teşekkürler Kodunu denerim Eminim cordova.js'nin iOS ile ilgili bazı problemleri vardır. Çok teşekkürler! Ciao Rob – oudoken

İlgili konular