0

jQueryMobile を使用して PhoneGap アプリを作成するのに苦労しています。私のアプリでは、ユーザーの現在の地理位置情報の GPS 座標を 4 分ごとにサーバーに送信する必要があります。これどうやってするの?

これは私が現在使用しているコードですが、データを送信しません。これを機能させるにはどうすれば変更できますか?

document.addEventListener("deviceready", onDeviceReady, false);

var watchID = null;

// PhoneGap is ready
//
function onDeviceReady() {
    // Update every 4 minute
    var options = { maximumAge: 240000, timeout: 5000, enableHighAccuracy: true };
    watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
}

// onSuccess Geolocation
//
function onSuccess(position) {
   var lat = Position.coords.latitude;
    var lng = Position.coords.longitude;


    jQuery.ajax({
        type: "POST", 
        url:  serviceURL+"locationUpdate.php", 
        data: 'x='+lng+'&y='+lat,
        cache: false
    });
}

// onError Callback receives a PositionError object
//
function onError(error) {
    alert('code: '    + error.code    + '\n' +
          'message: ' + error.message + '\n');
}
4

1 に答える 1

-1

setInterval を呼び出す代わりに、phonegap にそれをさせてください。

// onSuccess Callback
//   This method accepts a `Position` object, which contains the current GPS coordinates
//
function onSuccess(position) {
    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');
}

// Options: retrieve the location every 3 seconds
//
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { frequency: 3000 });

http://docs.phonegap.com/en/1.0.0/phonegap_geolocation_geolocation.md.html#geolocation.watchPosition

于 2012-05-23T07:06:12.887 に答える