Ошибка 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 бесплатно.

Другие вопросы по тегам