Also ich bin neu bei Javascript und Cordova und ich versuche eine einfache GPS App in Visual Studio 2015 zu erstellen, die nur meine aktuelle Position erreicht, wenn ich auf "CURRENT POSITION" klicke.Cordova Geolocation gibt NAN für Breiten- und Längengrade zurück
Es funktioniert, wenn ich es in Firefox testen, aber nicht, wenn ich versuche, es auf meinem lokalen Computer oder auf dem Remote-Computer auszuführen. (Ich bin mit 10 Windows- und Prüfung auf einem Panasonic FZ-M1 Toughpad. Wenn ich laufe es auf dem lokalen/Remote-Rechner des Breiten- und Längen Rückkehr NAN nach etwa 30 Sekunden.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="css/index.css">
<script src="http://maps.google.com/maps/api/js?sensor=true"></script>
<title>gpsCordova</title>
</head>
<body>
<div class="app">
<h1>Apache Cordova</h1>
<div id="deviceready" class="blink">
<p class="event listening">Connecting to Device</p>
<p class="event received">Device is Ready</p>
</div>
</div>
<h2>Touch Me.</h2>
<button id="locationButton">CURRENT LOCATION</button><br>
<p id="Geolocation"></p>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="scripts/platformOverrides.js"></script>
<script type="text/javascript" src="scripts/main.js"></script>
</body>
document.getElementById("locationButton").addEventListener("click", getLocation);
var geoLoc = document.getElementById("Geolocation");
var geolocationOptions = {
enableHighAccuracy: true,
maximumAge: 3600000
}
function getLocation() {
navigator.geolocation.getCurrentPosition(geolocationSuccess, geolocationError, geolocationOptions);
}
function geolocationSuccess(position) {
geoLoc.innerHTML ="Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude +
"<br>Accuracy: " + position.coords.accuracy +
"<br>Altitude: " + position.coords.altitude +
"<br>Altitude Accuracy: " + position.coords.altitudeAccuracy +
"<br>Heading: " + position.coords.heading +
"<br>Speed: " + position.coords.speed +
"<br>Timestamp: " + position.coords.timestamp + "<br>";
}
function geolocationError(error) {
geoLoc.innerHTML = "Failure" +
"<br>error: " + error.name +
"<br>message: " + error.message;
}
ich bin nicht sicher, was sonst noch hinzufügen, aber hat jemand Erfahrung mit diesem Problem? Oder gibt es etwas, das ich in meinem Code fehlt bin?
Vielen Dank für Ihre Hilfe.
Haben überprüfen Sie, ob das Testgerät hat Geolokalisierung aktiviert und wenn die App die richtige geolocation Genehmigung der OS hat? – jlapoutre
Ja, das Gerät verfügt über Geolocation. Ich bin mir nicht sicher, was Sie mit der App meinen, hat die richtige Geolocation-Berechtigung vom Betriebssystem, aber unter den Geräteeinstellungen ist die Berechtigung für den Standort für die App aktiviert. Wenn ich die App starte, wähle ich "Ja", wenn ich aufgefordert werde, den Standort zu teilen. – mmm121
Hallo @ mmm121 unter iOS jede App muss bestätigt werden, Geolocation zu verwenden, das gleiche gilt für Android v5 und höher. Ich meine, haben Sie überprüft, ob diese Berechtigung tatsächlich für die App gilt (falls zutreffend). Ansonsten sieht Ihr Code gut aus und ähnelt dem Code, den ich in der Vergangenheit erfolgreich mit Cordova verwendet habe. – jlapoutre