2017-02-08 59 views
0

我试图通过Phonegap Build将我的位置发送到服务器。由于某种原因,它似乎不起作用。这可能是什么原因以及如何解决它?Phonegap构建不发送地理位置

这里是我的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

我认为navigator.geolocation.watchPosition(的onSuccess,onError的,选项);不应该在你的onDeviceReady函数中。每当位置改变时,watchPosition都会被调用。您尝试获取onDeviceReady的位置,然后将其发送到服务器并使用navigator.geolocation.watchPosition(onSuccess,onError,options);在每次更改位置时致电您的服务器

希望它对您有所帮助