GeolocationPositionError:位置获取超时

GeolocationPositionError: Position acquisition timed out

提问人:jus 提问时间:10/16/2023 更新时间:10/16/2023 访问量:48

问:

我想在单击按钮时检索用户地理位置。

我使用(纯js) 它工作了一段时间(下面的代码),无论好坏(曾经在Firefox上接受本地化权限提示的seccond时间工作,并且在Safari上每次接受)但现在它完全停止在Firefox和Safari(ios)上工作(在Chrome和Edge上工作正常)navigator.geolocation

接受本地化后,我在 Firefox 上遇到错误。在 Safari 上,它停止向我询问 permising,只是发送“Fail 2”警报。 请指出如何解决该问题的正确解决方案... 我的代码:GeolocationPositionError {code: 3, message: "Position acquisition timed out"}

if (!navigator.geolocation) {
    alert("Fail 1")
} else {
    isOnline();
    if (internet){ 
        getAddress().then( l =>{
            const [latitude, longitude] = l
            formData.append("latitude", latitude);
            formData.append("longitude", longitude);
            sendRequest()
        }).catch(e =>{
            console.log(e) // GeolocationPositionError {code: 3, message: "Position acquisition timed out"}
            if (internet){
                alert("Fail 2")
            }else{
                noInternet()
            }
        }) 
    }else{
        noInternet()
    }
}

getAddress 函数:

export async function getAddress() {
    const position = await getCoordinates(); 
    let latitude = position.coords.latitude;
    let longitude = position.coords.longitude;
    return [latitude, longitude] 
}

getCoordinates 函数:

async function getCoordinates() {
    return new Promise(function(resolve, reject) {
      navigator.geolocation.getCurrentPosition(resolve, reject, navigatorLocationOptions);
    });
}

navigatorLocationOptions:(我尝试了不同的组合,但似乎都没有解决问题)

const navigatorLocationOptions = {
    enableHighAccuracy: true,
    timeout: 5000,
    // maximumAge: 100000
};

JavaScript Firefox 移动-Safari 导航器 W3C-地理位置

评论

0赞 jus 10/17/2023
解决了 Safari 的问题 ->确保网页受到保护(没有自动重定向到 https)我仍然需要提示如何处理 Firefox 上的问题......

答: 暂无答案