我试图通过Phonegap Build将我的位置发送到服务器。由于某种原因,它似乎不起作用。可能是什么原因以及如何解决?
这是我的js
// Wait for PhoneGap to load
//
document.addEventListener("deviceready", onDeviceReady, false);
var watchID = null;
// PhoneGap is ready
//
function onDeviceReady() {
// Update every 3 seconds
var options = {maximumAge:10000, enableHighAccuracy:true};
watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
}
// onSuccess Geolocation
//
var coords = {lat: "", lon: ""};
function onSuccess(position) {
coords.lat = position.coords.latitude;
coords.lon = position.coords.longitude;
}
// onError Callback receives a PositionError object
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
setInterval ( "Updateposition()", 15000 );
function Updateposition(){
// here you can reuse the object to send to a server
console.log("lat: " + coords.lat);
console.log("lon: " + coords.lon);
var auto = localStorage.getItem("number");
jQuery.ajax({
type: "POST",
url: serviceURL+"location.php",
data: 'x='+ coords.lon+'&y='+coords.lat+'&auto='+auto,
cache: false
});
}
在config.xml上我有
`<gap:plugin name="cordova-plugin-geolocation" source="npm" />`
答案 0 :(得分:0)
我认为是navigator.geolocation.watchPosition(onSuccess,onError,options);不应该在你的onDeviceReady函数中。每次更改位置时都会调用watchPosition。
您尝试获取位置onDeviceReady,然后将其发送到服务器并使用navigator.geolocation.watchPosition(onSuccess,onError,options);每次更改位置时调用您的服务器
希望对你有所帮助