2017-02-08 97 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);在每次更改位置時致電您的服務器

希望它對您有所幫助