你的error callback有沒有火?如果您沒有,請嘗試添加一個。如果它永遠不會觸發,則可以在函數上設置一個超時,如果它在一定時間內沒有獲得許可,則顯示通知。
由於errorCallback在從未啓用geo的情況下從未觸發,因此要在將在另一個函數上創建settimeout的函數創建一個包裝。如果api中的任何一個回調都會觸發,則在觸發之前移除settimeout。
var timeOutId;
function disabledGeoHandler(){...}
function show_map() {
clearTimeout(timOutId);
...
}
function show_map_error() {
clearTimeout(timOutId);
...
}
function lookup_location() {
timeOutId = setTimeout(disabledGeoHandler, 1000);
navigator.geolocation.getCurrentPosition(show_map, show_map_error);
}
事實上,你可以只使用geo.js
來源
2011-09-30 20:12:16
kzh
錯誤回調不火。但是,只有當設備不支持地理位置時纔會觸發,而不是在設備支持地理位置時觸發,但是針對該特定設備禁用。我想知道這是否是JavaScript無法訪問的東西? –
我會研究這個。謝謝! –