15 views
Skip to first unread message

ROBERTO ANGUITA MARTIN

unread,
Apr 6, 2014, 7:34:51 AM4/6/14
to phone...@googlegroups.com

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>      

--

 
Un saludo
Roberto Anguita 

(puedes seguirme en @ranguita78)
-------------------------------------------------------------------
coto - App del Restaurante el Coto del Casar
SleepAndSave - App que permite desconectar de forma programada las conexiones de internet, bluetooth,etc durante un tiempo indicado
El Rincon de Luckesky - Blog de noticias de Android

Antes de imprimir este e-mail piense bien si es necesario hacerlo. El medioambiente es cosa de todos.

jcesarmobile

unread,
Apr 6, 2014, 2:20:54 PM4/6/14
to phone...@googlegroups.com
Prueba


setTimeout(dataRequest,2000);

O


setTimeout(function () {dataRequest();},2000);

ROBERTO ANGUITA MARTIN

unread,
Sep 18, 2014, 4:49:31 AM9/18/14
to phone...@googlegroups.com
Buenas gracias por la respuesta, no la habia visto y sigo sin poder resolver el problema

La solucion que tu propones me vale cuando es la pagina inicial la que consulta el json pero si el index hace un enlace a esta pagina como es el caso no salta.

mi duda es si el evento ready solo salta en la primera pagina y en el resto cuando cargan salta otro evento.

ROBERTO ANGUITA MARTIN

unread,
Sep 18, 2014, 10:39:04 AM9/18/14
to phone...@googlegroups.com
me contesto yo solo necesitaba rel="external" , ahora si funciona

jcesarmobile

unread,
Sep 18, 2014, 12:38:49 PM9/18/14
to phone...@googlegroups.com
Si, eso te pasaba porque jquery mobile, si tienes un link a otra página, por defecto carga el contenido de dicha página en la página actual, usando el rel="external" si navegas a ella.
Reply all
Reply to author
Forward
0 new messages