2016-08-03 91 views
1

所以我是新来的JavaScript和科尔多瓦,我试图创建一个简单的GPS应用程序在Visual Studio 2015,只是获得我当前的位置,当我点击“当前位置”。科尔多瓦地理位置返回NAN的经纬度

它在Firefox中测试时有效,但当我尝试在本地机器或远程机器上运行时,它不起作用。 (我使用的是Windows 10和松下FZ-M1 Toughpad测试。当我大约30秒后,本地/远程计算机上运行它的纬度和经度返回NAN。

<!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; 
    } 

我不知道还有什么补充,但没有任何人有这个问题的经验吗?还是有,我很想念我的代码的东西吗?

感谢您的帮助。

+0

你检查测试设备启用地理位置,如果应用程序有来自OS的正确地理位置许可? – jlapoutre

+0

是设备启用了地理位置。 我不确定你的意思是应用程序具有来自操作系统的正确的地理位置权限,但在设备设置下,应用程序的位置权限已打开。当我运行该应用程序时,我会在提示我共享位置时选择是。 – mmm121

+0

嗨@ mmm121在iOS下每个应用需要确认才能使用地理位置,对于Android v5及以上版本也是如此。我的意思是你仔细检查了这个权限实际上是否提供给应用程序(如果适用)。否则,你的代码看起来很好,类似于我以前在科尔多瓦成功使用的代码。 – jlapoutre

回答

相关问题