Ошибка Modernizr при использовании Chrome на устройствах Android
У меня проблема, которую я только что заметил и никогда не видел в своем ранее выпущенном коде. В JS я звоню
navigator.geolocation.getCurrentPosition()...
Я также закодировал успешные и ошибочные части обратного вызова. У меня проблема в том, что на устройствах Android, использующих Chrome, я всегда получаю сообщение об ошибке "[object PositionError]"
Если я использую Firefox на том же устройстве, это нормально. Все устройства iOS, которые я тестировал, также работают.
Кто-нибудь еще сталкивался с этой проблемой, и если так, вы нашли решение?
Это мой полный блок кода:
if (Modernizr.geolocation) {
navigator.geolocation.getCurrentPosition(
function (position) {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
callback(lat, lng);
}
, function (err) {
// 1 = PERMISSION_DENIED
// 2 = POSITION UNAVAILABLE
// 3 = TIMEOUT
//if (err.code == err.PERMISSION_DENIED) {
alert(err);
alert('Current location could not be obtained from the device.\r\nCheck your GPS settings.');
//}
}
, { timeout: 10000 }//10 secs.
);
} else {
alert('This device does not support GPS locations.');
}
1 ответ
Решение
Начиная с Chrome 50, вы больше не можете получить доступ к API геолокации с веб-страниц, отличных от https.
Благодаря таким проектам, как Lets Encrypt, теперь вы можете получить сертификат SSL бесплатно.