Используя конструкцию jquery для инициализации, getCurrentPosition / watchPosition больше не работает в iOS Safari или Xcode Simulator.
Этот код работал до мая. Я удалил большую часть кода, чтобы протестировать базовую функциональность navigator.geolocation.getCurrentPosition. Если я вытяну код getCurrentPosition из функции объекта / инициализации Historigin и урону его за пределы последней строки, функция getCurrentPosition будет работать. Таким образом, результат, который я получаю в настоящее время: ОШИБКА (3): Тайм-аут поиска позиции.
main.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
<script src="https://maps.googleapis.com/maps/api/js?key=YOURAPIKEY">
</script>
<script type="text/javascript" src="js/Libraries/myphp.min.js"></script>
<script type="text/javascript" src="js/Libraries/jquery.js"></script>
<script type="text/javascript" src="js/Libraries/jquery.mobile-events.min.js"></script>
<script type="text/javascript" src="js/Libraries/jquery.touchSwipe.min.js"></script>
<script type="text/javascript" src="js/config.js"></script>
<script type="text/javascript" src="js/main.js"></script>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="cordova_plugins.js"></script>
<script type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="js/index.js"></script>
<script type="text/javascript" src="statusbarnotification.js"></script>
<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/_reset.css" />
<link rel="stylesheet" type="text/css" href="css/index.css" />
</head>
<body>
<script>
$(function() {
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
Historigin.initialize();
}
app.initialize();
});
</script>
</body>
</html>
main.js
var Historigin = {
initialize: function() {
var options = {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
};
function success(pos) {
var crd = pos.coords;
console.log('Your current position is:');
console.log(`Latitude : ${crd.latitude}`);
console.log(`Longitude: ${crd.longitude}`);
console.log(`More or less ${crd.accuracy} meters.`);
}
function error(err) {
console.warn(`ERROR(${err.code}): ${err.message}`);
}
navigator.geolocation.getCurrentPosition(success, error, options);
}
};
Я ожидаю вывод широты и долготы моей текущей позиции в console.log.