Phonegap构建不发送地理位置

时间:2017-02-08 20:15:40

标签: cordova geolocation phonegap-build

我试图通过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" />`

1 个答案:

答案 0 :(得分:0)

我认为是navigator.geolocation.watchPosition(onSuccess,onError,options);不应该在你的onDeviceReady函数中。每次更改位置时都会调用watchPosition。

您尝试获取位置onDeviceReady,然后将其发送到服务器并使用navigator.geolocation.watchPosition(onSuccess,onError,options);每次更改位置时调用您的服务器

希望对你有所帮助