Я создаю веб-приложение с полным стеком в JavaScript, предназначенное для использования на мобильных устройствах (Android и iPhone). Использование API-интерфейсов HTML5 Geolocation на телефонах Android отлично работает, но, похоже, проблема с авторизацией iPhone. При взаимодействии с веб-приложением в качестве пользователя iPhone iOS автоматически отказывает пользователю в разрешении использовать службы определения местоположения, и поэтому, в отличие от телефонов Android, нет всплывающего окна, которое дает пользователю возможность разрешать услуги определения местоположения. Я много раз потрудился с настройками служб местоположения iPhone безрезультатно. Есть ли фрагмент кода JavaScript, который позволяет пользователю разрешать разрешение для служб определения местоположения? Благодарю.
Настройки местоположения для Safari могут быть OFF
, вы можете изменить его здесь: Settings > Privacy > Location Services > Safari
Вы также можете попробовать что-то вроде этого:
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(successFunction);
} else {
// Make API call to the GeoIP services
}
И используйте некоторую услугу, такую как http://ip-api.com (но геоданные на основе ip не очень точны)
Здесь вы можете найти дополнительную информацию о getCurrentPosition():