2013-02-11 56 views
1

我使用下面的方法成功捕獲用戶的位置(手機瀏覽器):的Javascript GeoLocation中緩存

<script> 
if (navigator.geolocation) { 
navigator.geolocation.getCurrentPosition(handlePosition); 
} 
function handlePosition(pos) { 
    //this passes lat/long to additional code 
} 
</script> 

這工作,但很多時候,瀏覽器會緩存貌似位置數據。調用此地理位置代碼的頁面顯示與用戶位置相關的信息,因此用戶可以移動(更改位置),重新加載頁面,但使用之前的位置數據(顯示不正確的數據)。有時頁面將不得不刷新一次甚至兩次,頁面才能使用新的位置數據。

有沒有人知道任何方式來強制代碼獲取和使用「最新」位置數據每次腳本執行?

FWIW,我在iOS Safari(6.1)中遇到問題。還沒有能夠在Android中測試。

感謝您的閱讀和任何幫助。

回答

2

不可以做。除了示例中的代碼之外,您無法控制瀏覽器的地理位置。 html5地理位置api非常非常有限,這是一個痛苦。我還有一個question,不管我是否可以問這個域名的許可是否已經被授予,答案也是否定的。

問題是api是在瀏覽器本身中實現的,並且這些類型的函數沒有端點。

你可以做的是在js中創建一個數組來存儲以前的位置,然後再根據該數組更新視圖測試以查看是否有舊的位置。

+0

怕這個...謝謝... – 2013-02-11 14:54:01