2013-02-11 174 views
0

我試圖在Android瀏覽器上獲取地理位置,但沒有任何反應。我正在使用三星Galaxy S3,但我不確定我的瀏覽器版本。 Android版本4.1.2是 這裏是我的代碼:navigator.geolocation.getCurrentPosition在Android瀏覽器上失敗

if (navigator.geolocation) { 

      var timeoutVal = 10 * 1000 * 1000; 
      navigator.geolocation.getCurrentPosition(
       displayPosition, 
       displayError, 
       { enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 } 
      ); 
     } 

這是我複製並從該網站 粘貼它給我的「navigator.geolocation」 而是一個代碼,當談到「getCurrentPosition」我代碼停止工作。 Mobile Chrome正常工作,但事實並非如此。我分享了我的位置,但仍然沒有任何反應任何幫助將appriciated。 謝謝。

謝謝大家,我找到了解決方案, 我在一些JavaScript操作後得到了地理位置。我準備在文檔準備好之前嘗試獲取地理位置。它的工作。

+0

您的'displayError'函數是否被調用?你會得到什麼錯誤信息? – fiddler 2013-02-11 11:52:01

+0

不,它不被調用。我想問題是「沒有這樣的方法調用getCurrentPosition」 – 2013-02-11 12:04:04

+1

你檢查過嗎:http://stackoverflow.com/questions/3397585/navigator-geolocation-getcurrentposition-sometimes-works-sometimes-doesnt? – fiddler 2013-02-11 12:38:08

回答

1

爲了得到地理位置沒有錯誤,您必須在使用地理位置提供的值之前使該代碼塊工作,因爲操作是異步執行的,在此問題中,我通過將其地址定位腳本加載到其他.js文件之前找到了解決方案。這解決了我的問題,這個問題的另一個訣竅是,當您爲瀏覽器提供「始終」的權限來讀取您的位置時,地理位置的工作更加穩定。第一次加載後,你永遠不會遇到地理位置錯誤。

0

您是否在清單中提供Internet權限?

<manifest xlmns:android...> 
... 
<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
</manifest> 
+0

我正在尋找答案,我看到了另一個答案,但我不知道在哪裏添加這些行。你能告訴我嗎? – 2013-02-11 11:46:23

+1

順便說一下,這不是一個本地的應用程序,我很抱歉,我忘了告訴。 – 2013-02-11 14:19:01

1

好像PhoneGap的與地理位置 一個問題,我有 我使用S3搭載Android 4.1.2相同的問題,PhoneGap的地理定位功能不起作用

0

我知道這有點舊,但它不斷出現在搜索,所以我想我會添加一個幫助我的提示。

因爲我想在頁面加載時獲取位置,我發現我需要在頁面加載後引入非常短的延遲。當我毫不遲疑的時候,我不會遇到任何錯誤,但我也不會在手機上激活位置協議。這一半秒的延遲解決了這個問題。你可以玩延遲,看看它是否能解決你的問題。 setTimeout(function(){getAutoLocation(true)},500);

我在「getAutoLocation(true)」函數中獲取位置。這個setTimeout僅用於引入延遲。

0

我發現一些Android手機(舊的和新的)不能正常運行功能 getCurrentPosition,也許試圖保存一些電池。

我打功能watchPosition,然後高精度GPS踢

閱讀知道如何使用這些參數正確: http://dev.w3.org/geo/api/spec-source.html#watch-position

在我而言,這工作:

{ 
    maximumAge: 0, timeout: 2000, enableHighAccuracy: true 
} 

希望這可以幫助別人。

相關問題