地理定位功能错误不起作用

geolocation function error dont works

本文关键字:错误 不起作用 功能 定位      更新时间:2023-09-26

我正在使用navigator.geolocation对象中的函数getCurrentPosition。当用户选择共享本地化或从不共享时,我没有问题,但当用户选择"这次不"时,我无法输入函数错误。这是我的代码:

if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition, getLocationIp);
    } else { 
        console.log ( "Geolocation is not supported by this browser.");
    } 
};

function showPosition(position) {
   console.log( "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude);
     cargarArticulosInicio(position.coords.latitude,position.coords.longitude);
}
function getLocationIp() {
        //function get location from ip
}

不幸的是,这是浏览器团队为Firefox做出的决定:

Bug 675533-共享位置-"现在不"不会触发错误回调

这是经过设计的。Not Now隐藏弹出窗口,但允许您稍后做出决定,因此它不会调用回调。Never Share将触发错误回调。

其理由是,如果用户选择"现在不",则应被解释为"我不想现在选择",因此,他/她将永远不会回答这个问题。

至少在他/她重新打开弹出问题并选择另一个选项(共享、始终共享或从不共享,后一种情况是唯一调用错误回调的情况)之前。

当然,在这种情况下,如果能选择调用一些回调,那就太好了。在提到的错误页面中,许多人都在要求它。

目前唯一的解决方法是使用超时。

谢谢,我被这个弄疯了。我还考虑过创建一个布尔变量来控制是否有回调。如果没有回调,它仍然是"false",所以我可以调用我的函数getLocationIp,也许我也可以使用setInterval给用户留出一些时间来回答。