API геолокации навигатора выдает код ошибки PERMISSION_DENIED после включения
Я использую Navigator Geolocation API для своего проекта Angular 4, вот фрагмент кода, в котором я его использую:
setLocationByNavigator () {
let options = {}
const deviceInfo = this.deviceService.getDeviceInfo()
if (deviceInfo.device === 'android' || deviceInfo.os === 'mac') {
options = {
maximumAge: 1500000,
timeout: 100000
}
}
return new Promise((resolve, reject) => {
navigator.geolocation.getCurrentPosition((position) => {
resolve(position.coords)
}, (error: PositionError) => {
resolve(error)
}, options)
})
}
getErrorCode (error: PositionError) {
switch (error.code) {
case error.PERMISSION_DENIED:
console.info('Geolocation: User deinied the request for Geolocation.');
break;
case error.POSITION_UNAVAILABLE:
console.info('Geolocation: Location information is unavailable.');
break;
case error.TIMEOUT:
console.info('Geolocation: The request to get user location timed out.');
break;
default:
console.info('Geolocation: An unknown error occured.');
break;
}
}
На рабочем столе под окном работает отлично. Но для Mac и iPhone это не так. Я заметил, что после включения геолокации в Safari консоль выдает error.PERMISSION_DENIED
линия.
Проект находится в Docker-контейнере и проксируется по адресу 127.0.0.1 (где-то я читал, что для кого-то было решением изменить localhost на 127.0.0.1)