2013-08-07 15 views
7

ठीक नहीं कर सकते हैं, इसलिए मैं कुछ समय के लिए इस मुद्दे पर पर्याप्त प्रतिक्रिया की तलाश कर रहा हूं। मेरे पास एक वेब एप्लिकेशन है जो उपयोगकर्ता की स्थिति प्राप्त करने के लिए navigator.geolocation.getCurrentPosition का उपयोग करता है।सैमसंग गैलेक्सी डिवाइस geolocation.getCurrentPosition

सैमसंग गैलेक्सी उपकरणों पर मूल ब्राउज़र लगभग हमेशा getCurrentPosition कोड के साथ समस्याएं होती है। मैंने कॉलबैक और टाइमआउट के साथ इस कोड के सभी प्रकार की विविधताओं को आजमाया है, लेकिन यह हमेशा एक ही समस्या है। बहुत से लोगों ने इस मुद्दे को दस्तावेज किया है, और कुछ संकेत देते हैं कि डिवाइस को पुनरारंभ करना काम करेगा (कभी-कभी काम शुरू होता है, लेकिन हमेशा नहीं - और उपयोगकर्ताओं को उनके डिवाइस को पुनरारंभ करने के लिए कहने वाला एक चेतावनी लालसा से परे लगता है)।

क्या किसी ने सैमसंग गैलेक्सी डिवाइस पर काम करने के लिए getCurrentPosition का उपयोग करने के लिए एक निश्चित तरीका निकाला है? https://groups.google.com/forum/#!topic/phonegap/ESrHAjFHgFU

+0

आपके कोड के साथ कुछ भी गलत नहीं है। गैलेक्सी नोट और नोट 2 पर भी समस्या मौजूद है। –

उत्तर

18

मैं बिल्कुल वैसा ही समस्या मिल गया आप कुछ सप्ताह पहले राशि के रूप में: यहाँ है कि मैं क्या साथ भी काम कर रहा हूँ ...

<script> 

$(document).ready(function(){ 

if(navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(success, fail); 
} 

else { 
    alert("Sorry, your browser does not support geolocation services."); 
} 

function success(position) { 

    window.location = "mobile_set_coordinates.php?user_lat=" + position.coords.latitude + 
    "&user_lon=" + position.coords.longitude + "&accuracy=" + position.coords.accuracy; 
} 

function fail() { 
    // Could not obtain location 
} 

}); 

</script> 

, यहाँ समस्या के संबंध में विचार-विमर्श में से एक के लिए एक लिंक है। मैंने इंटरनेट पर लगभग 2 सप्ताह तक शोध करने की कोशिश की, मुझे मिलने वाले सभी समाधानों को देखें। आखिरकार, मुझे पता चला कि:

  1. यदि Google मानचित्र कभी भी आपके लक्षित फ़ोन पर नहीं खुलता है, तो यह फ़ंक्शन काम नहीं करता है।
  2. अपने जीपीएस स्थिति को रीसेट करें, फिर अपने फोन को पुनरारंभ करें। यह मदद कर सकता है।
  3. यदि चरण 2 काम नहीं करता है, तो जीपीएस की स्थिति को रीसेट करें, दिनांक समय सेटिंग पर समय क्षेत्र स्वचालित रूप से प्राप्त करें, फिर अपने फोन को पुनरारंभ करें।

मेरे ज्ञान के अनुसार, कोड के साथ कुछ भी गलत नहीं है। असल में, मेरा कोड लगभग आपके जैसा ही है। यह न केवल गैलेक्सी उपकरणों पर बल्कि कुछ एचटीसी पर भी होता है। मुझे गैलेक्सी एस 2, गैलेक्सी नोट 2, एचटीसी नेक्सस वन, एचटीसी वन एक्स और एचटीसी इनक्रेडिबल एस पर इस समस्या का सामना करना पड़ा। मुझे लगता है कि यह किसी भी तरह से एंड्रॉइड डिवाइस और कोड की प्रतिस्पर्धा के बीच समस्या होनी चाहिए।

चीयर्स,

+0

हाय माईलॉन्ग, मैं वर्तमान में एक ऐप बना रहा हूं जो भौगोलिक स्थान का उपयोग करता है। वास्तव में यदि Google मानचित्र फ़ोन पर खुला नहीं है तो भौगोलिक स्थान का उपयोग नहीं किया जा सकता है। क्या Google मानचित्र का उपयोग पहले से ही किया जा रहा है या नहीं? धन्यवाद। – Jeongbebs

+0

ठीक है, आमतौर पर मैं सिर्फ Google मानचित्र ऐप खोलता हूं। यदि यह पहली बार है, तो एक स्वागत स्क्रीन प्रदर्शित होगी। मेरा सुझाव यह है कि जब उपयोगकर्ता पहली बार इसका उपयोग करता है तो Google ऐप को आपके ऐप से खोलने का प्रयास करें। चीयर्स, –

+0

खुला Google मानचित्र मेरे लिए काम करता है। मेरी स्थिति में, मैं चीन में हूं, Google सेवा अवरुद्ध है, इसलिए मैं वीपीएन खोलता हूं, फिर Google मानचित्र खोलता हूं, फिर उस वेबव्यू को खोलता हूं जिसे मैं काम कर रहा हूं। यह सही काम किया। – Ninja

2

मेरे पास कुछ ऐसा ही हुआ था। जीपीएस हर दूसरे डिवाइस पर ठीक काम करेगा लेकिन गैलेक्सी उपकरणों पर यह गलती होगी।

मुझे पता चला कि इन उपकरणों पर जीपीएस स्थान प्राप्त करने में 10 सेकंड का समय लग सकता है। मुझे भी enabledHighAccuracy को झूठ में बदलना पड़ा। मेरा कोड यहाँ है।

 if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(
       function(position) { 
        // success! 
       }, 
       function() { 
        // failed to get a GPS location before timeout! 
       }, { 
        enableHighAccuracy: false, 
        timeout: 10000, 
        maximumAge: 10000 
       }); 
     } else { 
      // no support for geolocation 
     } 

आशा है कि इससे मदद मिलती है!

1

मेरे पास सैमसंग गैलेक्सी ट्रेंड प्लस जीटी-एस 7580 है। मेरी वेबसाइट पर भौगोलिक स्थान इस डिवाइस के साथ काम नहीं कर रहा था। इससे पहले यह एक एसस सर्फपैड के साथ काम करता था, और प्रत्येक सेटिंग इंटरनेट से और इंटरनेट तक पहुंच के लिए खुलती थी। जैसे ही मैंने न केवल मेरे स्थान पर मोबाइल डेटा तक पहुंच की अनुमति दी, बल्कि वाईफ़ाई नेटवर्क और Google की पहुंच और इस सेटिंग से जुड़े डेटा का संग्रह, यह काम करना शुरू कर दिया। इस मामले में यह केवल सेटिंग थी।

1

मुझे अपने गैलेक्सी जीटी-एन 8013 टैबलेट पर एक ही समस्या थी, getCurrentPosition एंड्रॉइड पर काम नहीं कर रहा है लेकिन यह आईओएस पर काम करता है। इस मुद्दे को ठीक करने के लिए, पहले मैंने टाइमआउट बढ़ाया। दूसरा, खुला Google मानचित्र ऐप। तीसरा, टैबलेट को पुनरारंभ करें। यह उसके बाद काम करता है।ब्राउज़र HTTP की तरह असुरक्षित मूल की अनुमति नहीं है -

$cordovaGeolocation.getCurrentPosition({timeout: 30000, enableHighAccuracy: false}) 
+0

यह मेरे लिए काम किया। – Tiois

1

मेरे लिए, क्रोम समस्या प्रतीत होता है। HTTPS (see Chromium) पर डेटा स्थानांतरित करके हल किया जाना चाहिए। एक वैकल्पिक ब्राउज़र में कोशिश करते समय मेरे गैलेक्सी एस 7 एज पर काम किया।

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