因为项目只兼容chrome浏览器,所以只测试了chrome和windows自带的Edge浏览器,经过测试:
1、联网情况下:chrome获取地理位置失败,FQ后一分种左右可以获取回地理位置;Edge可以即时获取到地理位置
2、断网情况下:chrome和Edge浏览器均无法获取到地理位置
private beforeMount() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
this.getLocationSuccess,
this.getLocationError
);
} else {
console.log('浏览器不支持Geolocation API');
}
}
/**
* @description: 成功回调函数
* @param {object} position 地理位置
*/
private getLocationSuccess(position: any) {
const latitude = position.coords.latitude;
const longitude = position.coords.longitude;
console.log('当前位置经度:' + longitude);
console.log('当前位置纬度:' + latitude);
}
/**
* @description: 失败回调函数
* @param {object} error 错误信息
*/
private getLocationError(error: any) {
switch (error.code) {
case error.PERMISSION_DENIED:
console.log('用户拒绝了位置请求');
break;
case error.POSITION_UNAVAILABLE:
console.log('无法获取当前位置');
break;
case error.TIMEOUT:
console.log('获取位置超时');
break;
case error.UNKNOWN_ERROR:
console.log('发生未知错误');
break;
}
}