如果未授予/拒绝访问,则会超时

navigator.geolocation.getCurrentPosition timeout if not granted /denied access

本文关键字:超时 拒绝访问 如果      更新时间:2023-09-26

我有一个问题,我找不到解决方案。基本上,当使用Google Maps时,成功回调不会加载,直到用户单击Allow或Deny(这将触发错误回调)。因此,只要请求访问的弹出窗口仍然被忽略,屏幕上就不会显示任何内容。

是否有一种方法说,如果"允许"或"拒绝"在10秒后没有点击,然后调用错误回调?

我刚刚使用了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});
     }