2012-11-06 15 views
5

प्लेटफार्म: आईओएस 6/ओएसएक्स शेर।फोनगैप, कॉर्डोवा घड़ीपोत आग की सफलता हर 1 सेकंड

मैं फोनगैप/कॉर्डोवा navigator.geolocation.watchPosition के साथ काम करने के तरीके को समझने की कोशिश कर रहा हूं।

दस्तावेज़ कहते हैं कि विकल्प "maximumAge" वह विकल्प है जो सिस्टम को स्थिति पुनर्प्राप्त करने के लिए कहता है।

इन विकल्पों के साथ

तो:

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

मैं espect स्थिति अनुरोध हर 3 सेकंड के सक्रिय होने का?

और कोई बात नहीं क्या maximumAge मैं डाल सफलता हर 1 सेकंड निकाल दिया जाता है ...

किसी को भी कृपया व्याख्या कर सकते हैं?

धन्यवाद अलविदा
रोब

+0

यहां एक ही समस्या है। कॉर्डोवा 2.2 और आईओएस 5.1/आईओएस 6। आईओएस हर एक सेकंड में आग लगती है, एंड्रॉइड हर 30 में ऐसा लगता है, लेकिन यह काफी विश्वसनीय नहीं है। – scald

+0

हाय निकर, तो यह एंड्रॉइड में भी काम नहीं करता है? यह वास्तव में अजीब बात है कि मैं सोच रहा था कि मैं गलत पैरामीटर का उपयोग कर रहा हूं, कॉर्डोवा/फोनगैप के पिछले संस्करणों में एक "फ्रीक्वेंसी" पैरामीटर था। धन्यवाद सीओओ रोब – oudoken

उत्तर

5

मैं वर्तमान में एक setInterval साथ getCurrentPosition का उपयोग करके इस समस्या के काम कर रहा हूँ। मुझे यकीन नहीं है कि परिणाम क्या हो सकते हैं, लेकिन ऐसा लगता है कि मुझे सबसे अधिक नियंत्रण मिलता है और प्लेटफॉर्म पर सबसे संगत विधि प्रतीत होता है।

// 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

हाय स्केल, उत्तर के लिए धन्यवाद। वास्तव में ऐसा लगता है कि फ़ंक्शन वॉचपोजिशन यह है कि यह केवल एक कॉल (टाइमर के साथ) प्राप्त करने के लिए है (मैं cordova.js के अंदर देखा है)। बीटीडब्ल्यू आपका कोड यह बहुत उपयोगी है! जब आप टाइमर को "clearInterval (activeWatch)" से रोकते हैं तो यह "watchPosition" भी रोकता है? मेरा मतलब है कि अगर कई बार "setupWatch" कॉल करें तो "watchPosition" के साथ कई टाइमर होंगे ?? धन्यवाद बहुत सीओओ रोब – oudoken

+0

रॉब - मेरे कोड में एक घड़ीपोत का उपयोग नहीं किया जा रहा है। मैं समझता हूं कि सतह कॉर्डोवा के नीचे कहीं कुछ ऐसा ही हो सकता है लेकिन यह उनके 'घड़ीपोत' कॉल की तुलना में मेरे लिए बहुत बेहतर काम कर रहा है। हां, 'clearInterval' कॉल' watchLocation' को रोकता है और उस टाइमर को साफ़ करता है ताकि बाद में 'setupWatch' पर कॉल एक ताजा टाइमर बना सके। – scald

+0

हाय स्कैल्ड, धन्यवाद, मैं आपका कोड आज़माउंगा, मुझे पूरा यकीन है कि cordova.js में आईओएस के साथ कुछ समस्याएं हैं। आपका बहुत बहुत धन्यवाद! सीओओ रोब – oudoken

संबंधित मुद्दे