你的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无法访问的东西? –
我会研究这个。谢谢! –