Tengo una pregunta sencilla pero que no consigo hacer funcionar y me pasa en todos las app phonegap que he intentado.
Empleo jquery mobile con phonegap y cono consigo que se autorefresque los datos que extraigo en JSON sin necesidad de pulsar el F5, lo que hace que cuando compilo la app phonegap no me muestre ningún dato.
Que función debo usar para controlar esto??Mi código es el siguiente:
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-height,initial-scale=1"/>
<title>Exple Listview</title>
<link rel="stylesheet" href="css/jquery.mobile-1.4.2.min.css" />
<link rel="stylesheet" href="themes/mystyle.min.css" />
<script src="js/jquery-1.11.0.min.js"></script>
<script src="js/jquery.mobile-1.4.2.min.js"></script>
<script>
$(document).ready(function(){
// $(document).bind('deviceready', function(){
// onDeviceReady();
// $('#vino-list').listview('refresh');
// });
// Wait for device API libraries to load
//
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
dataRequest();
}
// device APIs are available
//
function onDeviceReady() {
document.addEventListener("pause", onPause, false);
}
// Handle the pause event
//
function onPause() {
}
function yourCallback(button) {
if (button == 2) {
// Llamo una función que se ejecuta a los 2 seg.
setTimeout(dataRequest(),2000);
}
}
function dataRequest() {
var output = $('#data-list').text('Loading data...');
$.ajax({
url: 'http://www.domain.com/ws.php?TIPO=OK',
dataType: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
success: function(data, status){
output.empty();
$.each(data, function(i,item){
var landmark = '<h3> + item.nombre + '</h3>'
+ '<h3 align="right">'+item.precio + '</h3></a></li>';
output.append(landmark);
$('#data-list').listview('refresh');
});
},
error: function(){
output.text('There was an error loading the data.');
navigator.notification.confirm(
'Something went wrong. Would you like to retry?',
yourCallback,
'Error',
'No,Yes'
);
}
});
}
dataRequest();
$('#data-list').listview('refresh');
});
</script>
</head>
<body onload="dataRequest()">
<div data-role="page" id="page1" data-add-back-btn="true">
<div data-theme="a" data-role="header">
<h3>
Example ListView
</h3>
</div>
<div data-role="content">
<ul data-role="listview" id="data-list" data-theme="a" data-divider-theme="e" data-filter="true" data-filter-placeholder="Buscar..." data-inset="true">
</ul>
</div>
<div data-theme="a" data-role="footer">
</div>
setTimeout(dataRequest,2000);
O
setTimeout(function () {dataRequest();},2000);