2011-11-04 60 views
1

我在我的網站上有一個Google地圖,當他們點擊一個按鈕「獲取當前位置」時,我正在使用W3地理位置來檢測用戶位置。然後它應該彈出瀏覽器窗口頂部的allow/deny信息欄。檢測W3地理位置是否已被允許

我不想提示所有訪問者訪問地理位置訪問,但是想記住用戶是否已經允許地理位置並運行地理定位。

從我的研究中,這是不可能的,但我希望有人遇到過這種情況。我可以完成的唯一方法就是設置一個cookie。

謝謝!

+1

沒有API調用來知道用戶是否允許或不允許訪問位置。只顯示提示的getCurrentPosition或watchPosition。所以,設置cookie或以某種方式存儲用戶選擇似乎是唯一的方法。 – dmitry

+0

Google Chrome不會再詢問用戶是否允許他檢測到他的位置。 – noob

回答

1

這不完全是你想要的,但我認爲這可能會有所幫助。

根據W3C draft,你可以嘗試從任何瀏覽器緩存值(沒有用戶的確認),或退回到自定義的方法,如果沒有緩存的價值發現。

假設用戶同意提供地理位置,它將被緩存。來自相同W3C草案的示例:

// Request a position. We only accept cached positions, no matter what 
// their age is. If the user agent does not have a cached position at 
// all, it will immediately invoke the error callback. 
navigator.geolocation.getCurrentPosition(successCallback, 
             errorCallback, 
             {maximumAge:Infinity, timeout:0});