2011-06-07 65 views
6

我試圖在Iphone上使用html5地理位置,但它總是返回一個錯誤。Iphone HTML5地理位置總是返回錯誤

var win = function(position) { alert('Everything is fine! ' + position) };
var fail = function(e) { alert('Can\'t retrieve position.\nError: ' + e) };
navigator.geolocation.getCurrentPosition(win, fail);

我在IOS模擬器和我的設備上進行測試,但不起作用。 在Safari上,我可以使用無線網絡連接(??)獲得我的位置。

有一種方法可以使這項工作?

+0

沒有你得到這個工作? – Zubair 2011-12-08 09:30:27

回答

15

請確保設備上的定位服務已啓用Safari。前往設置>隱私>位置服務> Safari並確保它設置爲ON

那就試試這個代碼:

function doGPS() 
{ 
    try{ 
     //position request 
     navigator.geolocation.getCurrentPosition(function (position) { 
     alert(position.coords.latitude); 
     alert(position.coords.longitude); 
     }); 
    } 
    catch(evt) 
    { 
     alert(evt.message); 
    } 

} 
+4

打開位置服務爲我工作。我試着在http://html5demos.com/geo上進行測試**問題:**是Safari默認打開或關閉的位置服務? – zzz 2012-04-12 20:39:24

0

我用appMobi的JS,如果我重新加載iPhone上的Safari瀏覽器中的一個網站,它工作正常。但是,主屏幕書籤的應用程序沒有這樣做(即使我在網頁應用程序中添加新版本)。

新的js加載到書籤的應用程序罰款(我添加了一個彈出式消息,每次我更新代碼,只是爲了確保Web應用程序正在加載新的js)和iPhone promtps如果我想允許網站檢查,但是當我說是的時候沒有任何反應。而在Safari中,它顯示緯度/經度。

任何人都有類似的問題?

UPDATE:它的工作原理,但僅在第一次加載一個頁面 - 第二次通過時,會顯示「開始」,但不會顯示緯度/長...

if (navigator.geolocation) { 
    alert('Geolocation is supported!'); 
} 
else { 
    alert('Geolocation is not supported for this Browser/OS version yet.'); 
} 

try{ 
    //position request 
    alert('start'); 
    navigator.geolocation.getCurrentPosition(function (position) { 
    alert(position.coords.latitude); 
    alert(position.coords.longitude); 
    }); 
} 
catch(evt) 
{ 
    alert('fail'+evt.message); 
}