提问人:jus 提问时间:10/16/2023 更新时间:10/16/2023 访问量:48
GeolocationPositionError:位置获取超时
GeolocationPositionError: Position acquisition timed out
问:
我想在单击按钮时检索用户地理位置。
我使用(纯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
};
答: 暂无答案
评论