有没有办法检测移动设备是否使用JavaScript启用了位置服务?
我目前正在使用Modernizer来检测特定设备是否支持地理定位。但是,如果支持地理定位,但用户已禁用其设备的定位服务,我希望显示更具体的错误消息 我一直在抱怨地理定位在受支持的浏览器上不起作用,而事实上只是用户没有启用他们的浏览器 我知道有一些方法可以使用本机移动代码检测到这一点,但有没有一种方法可以使用JavaScript实现这一点?Modernizer支持这一点吗?您的手机曾经开火吗?如果没有,请尝试添加一个。如果它从未触发,您可以在函数上设置一个超时,如果它在一定时间内没有收到显示通知的权限 由于如果禁用geo,errorCallback将不会触发,因此在函数周围创建一个包装器,该包装器将在另一个函数上创建settimeout。如果对api的任何回调都启动了,则在启动之前删除settimeout有没有办法检测移动设备是否使用JavaScript启用了位置服务?,javascript,mobile,geolocation,Javascript,Mobile,Geolocation,我目前正在使用Modernizer来检测特定设备是否支持地理定位。但是,如果支持地理定位,但用户已禁用其设备的定位服务,我希望显示更具体的错误消息 我一直在抱怨地理定位在受支持的浏览器上不起作用,而事实上只是用户没有启用他们的浏览器 我知道有一些方法可以使用本机移动代码检测到这一点,但有没有一种方法可以使用JavaScript实现这一点?Modernizer支持这一点吗?您的手机曾经开火吗?如果没有,请尝试添加一个。如果它从未触发,您可以在函数上设置一个超时,如果它在一定时间内没有收到显示通知的
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);
}
事实上,您可以使用错误回调确实会触发。但是,它仅在设备不支持地理定位时触发,而不是在设备支持地理定位但对该特定设备禁用地理定位时触发。我想知道这是否是JavaScript无法访问的内容?我将对此进行研究。谢谢