Activa las notificaciones push PhoneGap Spain

Foro

Home Forums PhoneGap Estoy empezando bien un proyecto?

This topic contains 7 replies, has 5 voices, and was last updated by Aeon Aeon 1 semana, 1 dia .

Viendo 8 respuestas - de la 1 a 8 (de 8 en total)
  • Estoy empezando bien un proyecto?

    Intervenciones
  • Juan Pablo 
    Participant

    Buenos días, yo al empezar un nuevo proyecto en PhoneGap me crea unos ficheros como los que pongo a continuación:

     Code: index.html (select
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    11.
    12.
    13.
    14.
    15.
    16.
    17.
    18.
    19.
    20.
    21.
    22.
    23.

    <html>
        <head>
            <meta charset="utf-8" />
            <meta name="format-detection" content="telephone=no" />
            <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
            <link rel="stylesheet" type="text/css" href="css/index.css" />
            <title>Hello World</title>
        </head>
        <body>
            <div class="app">
                <h1>Apache Cordova</h1>
                <div id="deviceready" class="blink">
                    <p class="event listening">Connecting to Device</p>
                    <p class="event received">Device is Ready</p>
                </div>
            </div>
            <script type="text/javascript" src="cordova.js"></script>
            <script type="text/javascript" src="js/index.js"></script>
            <script type="text/javascript">
                app.initialize();
            </script>
        </body>
    </html>

     Code: index.js (select
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    11.
    12.
    13.
    14.
    15.
    16.
    17.
    18.
    19.
    20.
    21.
    22.
    23.
    24.
    25.
    26.
    27.
    28.
    29.
    30.
    31.

    var app = {
        // Application Constructor
        initialize: function() {
            this.bindEvents();
        },
        // Bind Event Listeners
        //
        // Bind any events that are required on startup. Common events are:
        // 'load', 'deviceready', 'offline', and 'online'.
        bindEvents: function() {
            document.addEventListener('deviceready', this.onDeviceReady, false);
        },
        // deviceready Event Handler
        //
        // The scope of 'this' is the event. In order to call the 'receivedEvent'
        // function, we must explicity call 'app.receivedEvent(...);'
        onDeviceReady: function() {
            app.receivedEvent('deviceready');
        },
        // Update DOM on a Received Event
        receivedEvent: function(id) {
            var parentElement = document.getElementById(id);
            var listeningElement = parentElement.querySelector('.listening');
            var receivedElement = parentElement.querySelector('.received');

            listeningElement.setAttribute('style', 'display:none;');
            receivedElement.setAttribute('style', 'display:block;');

            console.log('Received Event: ' + id);
        }
    };

    Veo que dentro del <body> del HTML llama a “app.initialize();”, y que dentro de esta llamada se encuentran otras llamadas, pero mi pregunta es si yo quiero hacer nuevos eventos o metodos, o lo que sea donde lo tengo que añadir, dentro del archivo “index.js” y voy añadiendo mis metodos y funciones o lo hago todo en el “index.html”, lo pregunto porque he visto por ahí que hay que hacerlo una vez cargado todo y eso se controla con el “deviceready”.

    Les agradecería mucho si modificaran mi ejemplo y me dijeran donde y como empezar a introducir mis metodos, eventos, etc…

    Un saludo


    alejandro giraldo duque
    alejandro giraldo duque 
    Participant

    Juan Pablo

    El cordova js el único archivo js necesario. Esto se genera automáticamente al ejecutar el phonegap .

    index.js contiene código de ejemplo acerca de cómo enlazar al evento deviceready. Puede servir como punto de partida para su código js.

    La carpeta de especificaciones y spec.html son para pruebas javascript usando Jasmine , un marco de pruebas de BDD Javascript.

    Muy bien que estes lleno de dudas

    Saludos :lol:


    gonza8888 
    Participant

    Completo un poco la respuesta de Alejandro.
    Al crear el proyecto, debes ir a la carpeta www q esta en assets.
    Borrar el js, el index.html y las otras cosas que no utilizes (como las imagenes que hay ahi tambien)
    Solo debes enlazar el cordova.js. Poner tu propio index.html, tus propios .js etc.


    Juan Pablo 
    Participant

    Muchas gracias por vuestras respuestas, pero me refiero mas a como tengo que empezar a llamar a mis funciones o como empezar, por ejemplo si tengo que introducir todo mi código en:

     Code: arbitrary (select
    1.
    2.
    3.
    4.

    document.addEventListener("deviceready", function() {
         ColocarControles();
         ComprobarUsuario();
    }, false);

    Cuando yo programao en otro lenguaje sé donde tengo que colocar cada parte de mi código y aquí estoy echo un lio, como primero hay que comprobar si el dispositivo está listo o no, por eso me gustaría que me dijeran si dentro de “addEventListener”, tengo que introducir todo, aunque haya funciones fuera, pero las llamadas supongo que tendrán que estar dentro no?

    Un saludo.


    Aeon
    Aeon 
    Participant

    andas un poco confundido parece :-P deberias checar la documentacion

    lo primero es saber si phonegap esta listo
    1.  document.addEventListener("deviceready", onDeviceReady, false);
    una vez que phonegap esta listo ajecuta la funcion onDeviceReady por lo que cualquier funcion que quieras que se ejecute al ejecutar tu app debe de ir en esa funcion

     Code: arbitrary (select
    1.
    2.

    function onDeviceReady() {    
        }

    por ejemplo si quieres checar que aya conexion de internet

     Code: arbitrary (select
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    11.
    12.
    13.
    14.
    15.
    16.
    17.
    18.
    19.
    20.
    21.
    22.
    23.
    24.
    25.
    26.
    27.
    28.

    <script type="text/javascript" charset="utf-8">

        // Espera a que PhoneGap se inicie
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // PhoneGap esta listo, y ahora se pueden hacer llamadas a los métodos
        //
        function onDeviceReady() {
            checkConnection();
        }

        function checkConnection() {
            var networkState = navigator.network.connection.type;

            var states = {};
        states[Connection.UNKNOWN]  = 'Conexión desconocida';
        states[Connection.ETHERNET] = 'Conexión ethernet';
        states[Connection.WIFI]     = 'Conexión WiFi';
        states[Connection.CELL_2G]  = 'Conexión movil 2G';
        states[Connection.CELL_3G]  = 'Conexión movil 3G';
        states[Connection.CELL_4G]  = 'Conexión movil 4G';
        states[Connection.NONE]     = 'Sin conexión';

            alert('Tipo de conexión: ' + states[networkState]);
        }

        </script>

    • This reply was modified 3 años, 7 meses by Aeon Aeon.

    • This reply was modified 3 años, 7 meses by Aeon Aeon.
    Juan Pablo 
    Participant

    Muchas gracias, ahora creo que ya si me he enterado.

    Un saludo.


    danieltoro11 
    Participant

    Buenas comunidad, tengo un problemita con una aplicacion hecha en phonegap cordova, ya en otro foro de esta comunidad me ayudaron con el tema de geolocalizacion en segundo plano que es con este plugin https://www.npmjs.com/package/cordova-plugin-gpslocation y lo logre implementar en un archivo .js en el cual puse el onDeviceReady para luego ejecutar un setInterval para capturar coordenadas cada X tiempo, el problema en si es que hay como 13 vistas (15 archivos .html) y cada uno de ellos hace referencia a este archivo .js, entonces cada vez que entro a una vista se vuelve a ejecutar el onDeviceReady ademas de que se pierde el hilo o el tiempo (No se como mas decirlo) y se vuelve a ejecutar, como podria solucionar este problema ?

    Sabiendo que necesito ejecutarlo solo una vez y que el setInterval no pierda el hilo independiente si pasa de una vista a otra, Al que me pueda ayudar muchas gracias.


    Aeon
    Aeon 
    Participant

    podrias mostrar algo de codigo o explicar mejor como lo estas haciendo, porque asi solo se me ocurre que estas volviendo a cargar el js


Viendo 8 respuestas - de la 1 a 8 (de 8 en total)

You must be logged in to reply to this topic.