如果未授予/拒绝访问,则为navigator.geolocation.getCurrentPosition超时

时间:2014-05-07 10:57:08

标签: javascript google-maps-api-3 callback geolocation

我遇到了一个无法找到解决方案的问题。基本上,在使用谷歌地图时,成功回调不会加载,直到用户点击允许或拒绝(这将触发错误回调)。因此,只要请求访问的弹出窗口仍然被忽略,屏幕上就不会显示任何内容。

有没有办法说如果在10秒后没有点击“允许”或“拒绝”,那么调用错误回调?

1 个答案:

答案 0 :(得分:0)

我刚刚使用了一个setTimeout函数,该函数在X秒后调用handleNoGeolocation函数。如果用户然后单击“允许”,则执行成功函数。

这是我的代码:

if(navigator.geolocation) {
          var timeout = setTimeout(function(){
            handleNoGeolocation();
          }, 3000);
          navigator.geolocation.getCurrentPosition(function(position) {
            clearTimeout(timeout);
            initialLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
            map.setCenter(initialLocation);
            doDirections();
          }, handleNoGeolocation, {timeout: 10000, enableHighAccuracy: true});
     }