2012-06-29 93 views
0

我已經花了最後3天,直到我得到gps使用phonegap開發應用程序的Android工作。應用程序在發送位置phonegap時關閉android

我正在使用示例來了解它是如何工作的,但是當我嘗試將位置發送到數據庫時遇到了一些問題。

這是我的代碼:

<!DOCTYPE html> 
<html> 
<head> 
<title>Device Properties Example</title> 

<script type="text/javascript" charset="utf-8" src="cordova-1.8.1.js"></script> 
<script type="text/javascript" charset="utf-8"> 

// Wait for Cordova to load 
// 
document.addEventListener("deviceready", onDeviceReady, false); 

// Cordova is ready 
// 
function onDeviceReady() { 
    navigator.geolocation.getCurrentPosition(onSuccess, onError, { 
     enableHighAccuracy : true, 
     maximumAge : Infinity, 
     timeout : 15000 
    }); 
} 

// onSuccess Geolocation 
// 
function onSuccess(position) { 
    var element = document.getElementById('geolocation'); 



    var id = 1; 
    pagina = window.open("http://mywebpage:80/open/posicionCamion.php?lat=" + position.coords.latitude + "&lon=" + position.coords.longitude + "&id=" + id); 
    pagina.close();     

    element.innerHTML = 'Latitude: '   + position.coords.latitude    + '<br />' + 
         'Longitude: '   + position.coords.longitude    + '<br />' + 
         'Altitude: '   + position.coords.altitude    + '<br />' + 
         'Accuracy: '   + position.coords.accuracy    + '<br />' + 
         'Altitude Accuracy: ' + position.coords.altitudeAccuracy  + '<br />' + 
         'Heading: '   + position.coords.heading    + '<br />' + 
         'Speed: '    + position.coords.speed     + '<br />' + 
         'Timestamp: '   +         position.timestamp   + '<br />'; 

} 

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

</script> 
</head> 
<body> 
<p id="geolocation">Finding geolocation...</p> 
</body> 
</html> 

如果我刪除pagina.window和pagina.close線,它工作正常。但是我想每15秒發送一個位置到一個php文件,這個php文件每次都會更新數據庫。

使用這些行,應用程序關閉,但沒有任何發送。有辦法做我想做的事?

我使用webbrowser測試了php文件,它工作正常。

謝謝。

回答

1

window.open()打開瀏覽器窗口,該窗口在設備中無法正常工作。嘗試用ajax請求替換window.open()調用。

<script type="text/javascript"> 
function callAjax(url){ 
    var req = new XMLHttpRequest(); 
    req.open('GET', url, false); 
    req.send(); 
    if(req.status == 200 || req.status == 0) { 
     alert(req.responseText); 
    } 
} 
</script> 
+0

謝謝。有沒有一種方法使用ajax來做一兩行?我找到的所有示例都必須創建XMLHttpRequest對象,並不像我使用的那樣簡單。 – user1298272

+0

我通常使用jquery,因爲它很容易,我已經把這個功能放在應該工作的答案中。 – dhaval

+0

它的作品!謝謝!!現在它不關閉,我可以繼續使用我的應用程序。 – user1298272

相關問題