我是Android平台的新手,所以我想用现有的示例代码开始学习。我正在尝试获取GPS坐标,所以我使用下面的代码。在下面的代码中,一旦设备启动onDeviceReady()方法正在触发,但onSuccess()方法没有触发。如何解决这个问题?我在我的项目中使用cordova-2.8.0.jar。
<!DOCTYPE html>
<html xml:lang="en" lang="en">
<head>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;">
<title>PhoneGap</title>
<script type="text/javascript" charset="utf-8">
// Wait for Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);
var watchID = null;
// Cordova is ready
//
function onDeviceReady() {
// Throw an error if no update is received every 30 seconds
alert("Test1");
var options = {
timeout: 3000
};
alert("TEst2"+options);
watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
alert("TEst3");
}
// onSuccess Geolocation
//
function onSuccess(position) {
alert("RAmesh");
/* var element = document.getElementById('geolocation');
element.innerHTML = 'Latitude: ' + position.coords.latitude + '<br />' +
'Longitude: ' + position.coords.longitude + '<br />' +
'<hr />' + element.innerHTML;*/
}
// onError Callback receives a PositionError object
//
function onError(error) {
/* alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');*/
}
</script>
</head>
<body>
<p id="geolocation">Finding geolocation...</p>
</body>
</html>
答案 0 :(得分:2)
尝试更改您的选项,如下所示:
var options = {
enableHighAccuracy: true,
timeout: 30000,
maximumAge: 0
};
确保您已设置在AndroidManifest.xml中使用位置的权限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
并在您的config.xml中:
<plugin name="Geolocation" value="org.apache.cordova.GeoBroker" />
答案 1 :(得分:0)
首先,尝试Dpa99c的说明。
其次,使用GenyMotion Emulator。它是Android的一个很棒的模拟器:比默认更快,你有一些小部件来修改位置,相机等等。
第三,我刚刚发现了Cordova / PhoneGap中的一个主要问题: - 当您打开由cordova构建的Android项目(在命令行中)时,requestUpdate设置为..... 60秒!!!!!!!!!!!每分钟都有一个新的位置!即使你使用GPS(enableHighAccuracy =“true”)。因此,尝试将其设置为1000,在org.apache.cordova.geolocation包中找到LocationManager.GPS_PROVIDER - &gt; GPSListener课程!