有办法捕捉html5地理定位事件吗?
现在我正在使用geolocator.js
我的问题是:
当消息弹出时,如果我想允许html5位置(如果我接受(,如果我得到ipLocation,它会占用html5位置。
但我想听听这些点击,这样我就可以设置一个超时,如果用户在10秒内没有点击,它会自动获取ip位置。
有什么方法可以让事件"接受"one_answers"拒绝"吗?这是我的代码片段
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(geoSuccess, geoError, html5Options);
} else { // not supported
fallback(new Error('geolocation is not supported.'));
}
编辑:我在iMac 上使用Chrome
编辑2:
var html5Options = { enableHighAccuracy: true,timeout: 10000, maximumAge: 0 };
编辑3:使用kravitz 的解决方案
if (navigator.geolocation) {
waitTooLong=setTimeout(geoError, 15000);
navigator.geolocation.getCurrentPosition(geoSuccess, geoError, html5Options);
} else { // not supported
fallback(new Error('geolocation is not supported.'));
}
function geoSuccess(position) {
clearTimeout(waitTooLong);
//doing my locationstuff
}
function geoError(error) {
//doing my locationstuff
clearTimeout(waitTooLong);
fallback(error);
}
var geoError = function(){
//get location failed so get manually by IP here
};
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(geoSuccess, geoError, html5Options);
} else { // not supported
fallback(new Error('geolocation is not supported.'));
}
以上应该工作,但如果你想真正确定:
var timeOut = setTimeout(geoError, 10000);
var geoSuccess = function(){
clearTimeout(timeOut);
};