MICHELEPISANI.IT
 

Dal'installazione dell'ambiente di sviluppo al lancio dell'applicazione

Come creare un'applicazione ibrida per dispositivi Android

Come creare un'applicazione ibrida per dispositivi Android
July 02
07:162016

Il seguente articolo ha lo scopo di accompagnare lo sviluppatore durante le fasi necessarie per giungere allo sviluppo della prima applicazione ibrida realizzata con Apache Cordova (Phonegap) su PC Windows per dispositivi Android, cercando di dettagliare nei limiti del possible i passaggi al fine di evitare di incappare in errori e problematiche che spesso si trasformano in un muro e finiscono con l'abbandonare le buone intenzioni da parte di un ormai scoraggiato potenziale innovatore.

NOTA: chi fosse interessato allo sviluppo di applicazioni ibride con l'utilizzo del Framework Ionic forse potrebbe essere interessato al mio articolo "COME CREARE UN'APP IBRIDA CON IONIC IN 3 SEMPLICI PASSAGGI" e sfruttare i vantaggi, che tale framework offre, relativi alla facilità di creazione di interfacce grafiche coerenti con i dispositivi di ultima generazione.

Le fasi di installazione per poter iniziare a programmare con Apache Cordova sono in prima istanza le medesime che servono per sviluppare applicazioni native, ovvero è necessario avere installato sulla macchina il kit di sviluppo (SDK) del sistema operativo per il quale si intende realizzare l'applicazione, nel caso specifico l'Android SDK.
Per intenderci, se volessi invece creare un'applicazione che giri su dispositivi con sistema operativo iOS come iPhone o iPad avrei bisogno di un Mac, dell'iOS SDK e dell'ambiente di sviluppo Xcode.

Di seguito le fasi di installazione dell'ambiente di sviluppo e gli strumenti necessari allo scopo:

- Installare Apache ANT
- Installare Java JDK
- Installare Eclispe Indigo
- Installare Android ADT (Plugin per Eclipse)
- Installare Android SDK
- Impostare le relative variabili d'ambiente (ANDROID_JAVA_HOME, ANT_HOME)

- Installare Node.js
- Installare Apache Cordova 3.3.0 (PhoneGap)

Appurato quanto premesso in merito all'ambiente di sviluppo rimando alla guida completa, arricchita di screenshot e dettagli, per l'installazione e la configurazione dei software necessari, concentrando così questo articolo sulle fasi successive dedicate a Cordova.

REQUISITI: PREPARARE L'AMBIENTE DI SVILUPPO ANDROID

Una volta preparato l'ambiente Android sul nostro computer è il momento di passare al lato Cordova.
L'installazione di Cordova richiede l'utilizzo dell'interfaccia a riga di comando, personalmente ho testato l'installazione con la versione 3.3.0 con la quale ho realizzato la mia prima applicazione ibrida compatibile con dispositivi Android (Totocena).
Come primo passaggio è necessario scaricare la versione di Apache Cordova desiderata dall'area download del sito ufficiale. Tutte le distribuzioni sono a disposizione su archive.apache.org nella sezione cordova. Per versioni successive di Apache Cordova come ad esempio la 3.5.0 viene suggerito di seguire i passaggi della documentazioni online per l'installazione di cordova CLI piuttosto che scaricare il file .zip dal sito. Le linee guide che descrivono quest'ultimo approccio si trovano sotto la voce "Installing the Cordova CLI" e delegano l'installazione di cordova al comando npm di Node.js
Di seguito spiego brevemente i passaggi da effettuare per la procedura manuale in modo da capire come ottemperare ad eventuali problemi che potrebbero venire restituiti in fase di creazione dei progetti.

Scaricare ed installare Node.js reperibile al sito ufficale dello stesso. Dopo l'installazione aggiungere alla variabile di sistema Path (nelle variabili d'ambiente), il percorso in cui è installato Node sulla propria macchina, nel mio caso: C:\Program Files\nodejs;
Per chi avesse problemi in questa fase faccio presente che la procedura per il settaggio delle variabili di ambiente e di sistema, essendo la stessa ad eccezione ovviamente delle variabili da impostare, è illustarata nella parte dedicata all'installazione di ANT per l'ambiente di sviluppo Android.
A questo punto si dovrebbe poter essere in grado di invocare node o npm sulla CLI (Command Line Interface), ma per la procedura di installazione manuale queste due istruzioni non verranno prese in considerazione.

Creare in "C:\" una nuova cartella e chiamarla "developer" (se avete seguito la procedura di installazione dell'ambiente di sviluppo per Android dovreste già avere tale cartella presente sul vostro computer). Scompattare il file di Apache Cordova precedentemente scaricato, nel mio caso cordova-3.3.0-src.zip, ottenendo così una cartella con un nome simile a questo cordova-3.3.0 (dipende dalla versione scaricata). All'interno di questa cartella c'è una serie di file zip relativi a ciascun sistema operativo per il quale si intende sviluppare l'applicazione, quello che interessa a noi in questo momento è l'archivio dedicato ad Android ovvero cordova-android.zip, Fig. 1, che andremo a scompattare all'interno del percorso stesso generando così una cartella denominata cordova-android con i relativi file al suo interno.

Apache cordova - Contenuto dell'archivio scaricato dal sito ufficiale

Fig. 1 - Apache cordova - Contenuto dell'archivio scaricato dal sito ufficiale


E' giunto quindi il momento di creare il nostro primo progetto Cordova per dispositivi con sistema operativo Android.
La prima cosa da fare è recarsi all'interno della suddetta cartella cordova-android, al percorso C:\developer\cordova-3.3.0\cordova-android e con il tasto SHIFT premuto cliccare con il tasto destro del mouse sulla cartella bin, si aprirà un menù contestuale dal quale sarà possibile cliccare su "Apri finestra di comando qui", Fig.2.

Apache cordova - Aprire la finestra di comando al percordo indicato

Fig. 2 - Apache cordova - Aprire la finestra di comando al percordo indicato


Cliccando su tale opzione si aprirà la finestra della linea di comando, Fig. 3, già posizionata al percorso della cartella contenente gli strumenti di cordova utili allo scopo.

Apache cordova -CLI aperta al percordo indicato

Fig. 3 - Apache cordova - CLI aperta al percordo indicato


Creiamo adesso una cartella generica per ospitare i nostri progetti in modo da organizzarli come meglio si crede, creare pertanto una directory in "C:\" chiamata "my_cordova_projects".
Adesso dalla linea di comando che abbiamo aperto eseguire la seguente istruzione per creare il nostro progetto:

cordova create C:\progetti_cordova\primo_progetto it.tuonome.nomeapp nomeprogetto


Raccomando di non creare preventivamente la cartella primo_progetto in quanto essa verrà creata automaticamente al lancio del comando cordova create, in caso contrario, se la cartella dovesse già essere presente potrebbe venire restituito un messaggio di errore "Project path already exists!". Dalla versione 3.3.0 il problema non dovrebbe sussistere mentre si è verificato con versioni precedenti.
Una volta lanciato il comando sarà necessario attendere alcuni secondi dopodichè se tutto è andato a buon fine non comparirà alcun messaggio di errore pertanto il progetto sarà stato creato con successo, Fig. 4.

Apache cordova - Nuovo progetto creato con successo

Fig. 4 - Apache cordova - Nuovo progetto creato con successo


Guardando infatti nella cartella progetti_cordova noteremo che vi è stata creata la cartella primo_progetto come annunciato poco sopra, dove al suo interno sono presenti tutti i file necessari per la realizzazione del nostro progetto per il SO Android, Fig. 5.

Apache cordova - Contenuto del progetto cordova appena creato

Fig. 5 - Apache cordova - Contenuto del progetto cordova appena creato


E' quindi ora il momento di indicare la piattaforma di destinazione per la quale vogliamo sviluppare l'app, nel nostro caso avendo installato sulla macchina solo l'SDK di Android andremo ad aggiungere questa piattaforma. Suggerisco in primo luogo di fare riferimento alla documentazione in linea per l'interfaccia a linea di comando che è sempre in costante aggiornamento e che può variare da versione a versione, nonchè spiega come poter aggiungere altre piattaforme al nostro progetto, come costruire i progetti e come testarli.

Vediamo nel dettaglio il nostro caso.
Recarsi, da linea di comando, all'interno della cartella del nostro progetto appena creata (d'ora in poi tutte le varie operazioni dovranno essere eseguite da questa cartella), se ci troviamo ad esempio in "C:\" eseguire i seguenti comandi:

cd progetti_cordova
cd primo_progetto


La situazione dovrebbe essere la seguente:

C:\progetti_cordova\primo_progetto>


Aggiungere la piattaforma Android:

cordova platform add android


Nel caso dovesse comparire un errore come il seguente "Current working directory is not a Cordova-based project." significa che qualche operazione non è andata a buon fine, per esperienza quello che può essere successo è aver creato il progetto con il comando sbagliato, vedere la relativa pagina di errore per maggiori dettagli.
Nel caso invece che tutto sia filato liscio la risposta della CLI è semplicemente quella mostrata in Fig. 6:

Apache cordova - Aggiungere la piattaforma Android

Fig. 6 - Apache cordova - Aggiungere la piattaforma Android

L'aggiunta della piattaforma è visibile all'interno della cartella "platforms" del nostro progetto.
Per verificare quali piattaforme sono installate per il nostro progetto e quali possono essere installate sulla nostra macchina è sufficiente digitare il comando:

cordova platforms ls


Ed il risultato è il seguente, Fig. 7:

Apache cordova - Piattaforme installate ed installabili

Fig. 7 - Apache cordova - Piattaforme installate ed installabili

Per compilare la nostra applicazione è necessario lanciare il comando:

cordova build android

Il comando build è una scorciatoia dei comandi prepare e compile, in tutti i casi è comunque possibile non specificare la piattaforma di riferimento e l'applicazione verrà compilata per tutte le piattaforme installate sul progetto.
In fase di build potrebbero essere restituiti degli errori, uno tra essi è "BUILD FAILED ... The SDK Build Tools revision (19.0.1) is too low for project 'nomeprogetto'. Minimum required is 19.1.0". La versione della revision richiesta potrebbe essere diversa da quella nell'esempio tuttavia la soluzione al problema è sempre la stessa ed è spiegata nella relativa pagina di errore.

Se l'operazione va a buon fine il risultato è qualcosa di simile al seguente, Fig. 8:

Apache cordova - comando Build eseguito con successo

Fig. 8 - Apache cordova - Comando Build eseguito con successo



Non rimane che testare l'app o su un emulatore o su un dispositivo fisico con il comando cordova emulate o cordova run:

cordova emulate android

cordova run android


La CLI in caso di successo comunicherà "Platform 'android' ran successfully", Fig. 9:

Apache cordova - Esecuzione di un progetto Android

Fig. 9 - Apache cordova - Esecuzione di un progetto Android andata a buon fine


Potrebbero essere restituiti degli errori in questa fase come ad esempio utilizzando il comando run la CLI potrebbe comunicarci "An error occurred while running the android project" oppure "Failed to launch app on emulator: Failed to install apk to emulator" mentre con il comando emulate potrebbe arrivarci questo messaggio di errore "An error occurred while emulating/deploying the android project".
Ed il risultato, esempio con l'emulatore ma se si collega un dispositivo fisico al PC tramite USB potremo installare l'apk su di esso, sarà il seguente, Fig. 10:

Apache cordova - App di default di un progetto

Fig. 10 - Apache cordova - App di default di un progetto


Come si vede il progetto di default di Apache cordova è eseguito con successo, non rimane altro adesso che sviluppare la nostra app lavorando con HTML, Javascript e CSS.

Tags

Autore

Michele Pisani

Michele Pisani

Ho uno spiccato orientamento al problem-solving, se è troppo facile non mi diverto :)
Credo nella volontà e nel cambiamento perchè hanno fatto della mia passione il mio pane quotidiano.
Se devo descrivermi con una sola parola direi... "Concretezza", la mia stretta di mano è una garanzia.

46 Commenti

  1. Carlo Thursday, January 21, 2016 alle ore 23:23

    Sono riuscito ad installare tutto l'ambiente di sviluppo, non riscontro nessun errore durante i comandi cordova inseriti nel prompt dei comandi, ma quando avvio l'emulatore non parte l'applicazione, posso muovermi tranquillamente tra le schermate android, ma dell'applicazione non vedo traccia. Come posso risolvere? grazie mille e complimenti per il sito, le guide sono molto chiare.

    Rispondi a questo commento
    • Michele PisaniAutore Thursday, January 21, 2016 alle ore 23:37

      Ciao Carlo e grazie dei complimenti,
      presumo che il comando che lanci sia 'cordova emulate android'. Non ti viene restituito alcun errore al momento del lancio?
      Se non ricordo male mi capitò una volta una situazione simile e, sempre se non ricordo male, arrivai alla conclusione che il problema stava nel livello delle API assegnate all'emulatore.
      Probabilmente hai un emulatore con API 18 (faccio un esempio) su cui vuoi far girare la tua app che ha funzionalità che si riferiscono alle API 21. Prova pertanto a modificare le impostazioni dell'emulatore da questo punto di vista.

      Rispondi a questo commento
      • Carlo Thursday, January 21, 2016 alle ore 23:54

        Buonasera, ho risolto creando un nuovo emulatore in SDK Manager impostando una versione più nuova recente di Android, e quindi si.. Ho cambiato anche il livello delle API, ora l'applicazione mi si avvia in automatico all'interno dell'emulatore quando eseguo il comando "Cordova emulate android".
        Grazie ancora per la disponibilità.

  2. Luca Wednesday, March 16, 2016 alle ore 15:01

    Ciao. Volevo chiederle se saprebbe spiegarmi brevemente come collegare l'app a un database remoto tramite php e dove e in quali file scrivere il codice php che ho notato che non viene letto da android.
    Grazie in anticipo

    Rispondi a questo commento
    • Michele PisaniAutore Thursday, March 17, 2016 alle ore 14:13

      Ciao Luca,
      stai usando Apache Cordova con codice Javascript puro o un framework particolare come ad esempio Ionic (che utilizza AngularJS)?
      In tutti i casi la tua domanda è un po' ambigua... nel senso che il codice PHP deve ovviamente risiedere sul server e non sull'app.

      Rispondi a questo commento
      • Luca Tuesday, March 22, 2016 alle ore 22:18

        Si stò scrivendo in html e javascript puro e non capisco come inviare le query dall'app al db remoto e come ricevere i risultati.
        Grazie per la tua considerazione

      • Michele PisaniAutore Wednesday, March 23, 2016 alle ore 00:39

        Come faresti dal web quando effettui chiamate asincrone, dall'app chiami in AJAX una pagina, ad esempio in POST, che eseguirà la query sul tuo db e ti darà un risultato, poi nell'app la funzione di callback della chiamata conterrà il tuo risultato.

        Un esempio di chiamata come descritto sopra, con jQuery, è questo:



        $.ajax({

        url: "www.mio_sito.it/mia_cartella/mia_pagina.php",

        type: "post",

        dataType: "json",

        async: true,

        data: { mio_parametro: valore_mio_parametro, altro_parametro: valore_altro_parametro }

        })

        .done(function (data) {

        successCallback(data);

        })

        .fail(failCallback);



        Se la chiamata va a buon fine (status 200) il risultato è raccolto in successCallback.
        Se inserisci il blocco di codice di cui sopra in una funzione e la richiami nell'app, il valore della stessa ti restituirà quello che la pagina chiamata ti ha generato.

        Fammi sapere se ti torna come concetto che eventualmente vedo se ti creo un articolo ad hoc con un esempio.

  3. Luca Tuesday, March 29, 2016 alle ore 16:51

    Ciao.
    Quindi dovrei fare un file .php, sul server dove risiede il db, che interroga il db stesso e, dall'app, richiamare tale file .php tramite chiamata AJAX?

    Se come dico è corretto il risultato della query sul file .php viene praticamente passato all'app?

    Grazie ancora per l'aiuto e se non è un problema un articolo di esempio non mi dispiacerebbe affatto :D

    Rispondi a questo commento
    • Michele PisaniAutore Wednesday, March 30, 2016 alle ore 00:31

      Concettualmente è corretto, direi che a questo punto non hai bisogno dell'articolo :), però non puoi farti restituire il recordset direttamente perchè altrimenti non potresti gestirlo nell'app, dovrai pertanto fare un json_encode del risultato (previa sua conversione in array) in modo che nell'app ti ritrovi un json dal quale recupererai i relativi valori richiesti.

      Rispondi a questo commento
  4. Luca Friday, April 1, 2016 alle ore 14:15

    Ora mi è più chiaro ma non ho ben capito come devo passare il recordset all'app. Devo convertire il recordset in un array nel file .php e poi passarlo all'app?
    E non ho conoscenze riguardo json quindi non conosco il codice adeguato.

    Rispondi a questo commento
    • Michele PisaniAutore Monday, April 4, 2016 alle ore 23:52

      Ti scrivo solo ora perchè il fine settimana è stato un po' impegnativo, comunque sì, all'interno del php devi fare in modo che il risultato di ritorno sia un json in modo da poterlo gestire dall'app.

      Il Json non è altro che un formato per lo scambio dati tra applicazioni client-server, che è appunto il tuo caso.
      Un esempio di json è il seguente:

      [{"id":"1","title":"Pippo","description":"Questa una descrizione","price":"100 EUR"},{"id":"2","title":"Pluto","description":"Altra descrizione","price":"35 USD"},{"id":"3","title":"Paperino","description":"Con la pipa in bocca","price":"1127 EUR"}]

      Che come vedi è una serie di coppie chiave valore organizzate in array (che sarebbero le righe del tuo recordset).
      Per crearlo da codice PHP devi seguire la procedura con il json_encode descritto nel mio commento precedente e per la quale ti ho creato un articolo che puoi trovare qui:

      CONVERTIRE IL RISULTATO DI UNA QUERY IN JSON CON PHP

      Poi per l'elaborazione dall'app ti creo un altro articolo ad hoc.
      Fammi sapere se nel frattempo hai risolto o se hai incontrato problemi.

      Rispondi a questo commento
      • Luca Tuesday, April 5, 2016 alle ore 17:47

        Wow, sei gentilissimo.

        Successivamente, dall'app, è sufficiente richiamare il file .php con chiamata ajax?
        Perché ho notato che android non legge il linguaggio PHP.

        Nel modo che mi stai spiegando però il file .php viene eseguito sul server così non dovrebbero presentarsi errori di questo tipo, giusto?

        Ancora mille grazie per la tua attenzione e per dedicare del tempo per aiutarmi a comprendere :) Gazie

      • Michele PisaniAutore Wednesday, April 6, 2016 alle ore 00:17

        Android non legge il PHP ma nemmeno iOS, Windows Mobile, ecc... Come ti ho spiegato qualche commento sopra il codice PHP va eseguito sul server, l'app lavora in Javascript (il JSON server proprio per questo motivo).

  5. Luca Tuesday, April 5, 2016 alle ore 18:11

    Ah dimenticavo, per inserire la chiamata AJAX nel HTML dell'app sono necessari particolari tag o script o è sufficiente scriverla semplicemente come hai scritto in una risposta precedente?

    E con l'utilizzo di AJAX andoid non dovrebbe dare alcun errore come la non interpretazione di PHP se ho capito bene.

    Rispondi a questo commento
    • Michele PisaniAutore Wednesday, April 6, 2016 alle ore 00:27

      Ovviamente quello è un codice di esempio, dovrai poi sostituire il path con quello che ti serve e creare le funzioni in caso di risposta con successo o risposta fallita, tuttavia essendo in Javascript non puoi utilizzarlo direttamente nell'HTML così com'è ma devi inserirlo all'interno dei tag script.
      Il problema della non interpretazione del PHP non si deve nemmeno porre perchè nell'app il PHP non può essere utilizzato.
      Secondo me dovresti prima fissare bene questo concetto così come quello dei tag HTML perchè se stai facendo un'app in HTML, Javascript e CSS questo tipo di dubbi non puoi averli e dalla tua domanda mi sembra che hai poco chiaro questo concetto base e più vai avanti più ti troverai in un imbuto.

      Rispondi a questo commento
  6. Luca Tuesday, April 5, 2016 alle ore 18:49

    Un altra domanda, come posso leggere i valori inseriti nei campi text del HTML, passarli al file .php e poi inserirli?

    Rispondi a questo commento
    • Michele PisaniAutore Wednesday, April 6, 2016 alle ore 00:37

      Se usi jQuery puoi recuperare il valore di un campo ad esempio riferendosi al suo id con\:

      var valore_campo = $("#id_campo").val();

      Poi lo passi come parametro nella chiamata al server.
      Secondo me dovresti fare un passo indietro perchè se hai fatto un po' di programmazione web questo dovrebbe essere pane quotidiano, se invece non hai basi web diciamo che la strada di partire da un'app non è quella giusta.
      Se hai già qualche base Javascript ti consiglio di dare un'occhiata alla Guida al DOM che ho scritto tempo fa per capire come riferirsi agli elementi in pagina.

      Rispondi a questo commento
  7. Luca Wednesday, April 6, 2016 alle ore 15:42

    Ah ok, se la chiamata AJAX va inserita tra i tag script mi è tutto più chiaro. Basta richiamare una funzione posta tra i tag script e da lì recuperare i valori che verranno successivamente passati come parametri alla chiamata AJAX!

    Rispondi a questo commento
  8. Luca Tuesday, April 12, 2016 alle ore 13:52

    Con le jquery mi ero accorto poco dopo e ho subito risolto tale problema, a questo punto non riesco a connettermi al server. Come ci si connette a un db protetto da nome utente e password mediante AJAX?
    Ed è giusto mettere l'indirizzo IP / file.php come url per connettersi?

    Rispondi a questo commento
    • Michele PisaniAutore Tuesday, April 12, 2016 alle ore 22:32

      Il problema del collegamento al db non lo devi gestire lato client, è la tua pagina che si connetterà e farà le operazioni necessarie.
      Per l'uso dell'ip presumo sia un discorso che riguarda la configurazione del server, io ho sempre associato ad un dominio, probabilmente nel caso di chiamata diretta all'ip la cartella sul server è quella del sito di default.

      Rispondi a questo commento
  9. Luca Wednesday, April 13, 2016 alle ore 13:47

    Scusa ho sbagliato a formulare la domanda. Come ci si connette a ua macchina server protetta da nome utente e password?

    E quindi si può fare la chiamata direttamente all'ip?

    Rispondi a questo commento
    • Michele PisaniAutore Thursday, April 14, 2016 alle ore 00:20

      Dovrei conoscere indicativamente le finalità della tua operazione perchè detto così, nel contesto di chiamate Ajax dall'app, non ne trovo il senso.
      Per l'ip vale quanto scritto precedentemente, mentre per la connessione al server sinceramente non capisco, intendi via RDP? Perchè altrimenti per chiamare una pagina non hai bisogno dell'accesso al server.

      Rispondi a questo commento
  10. Luca Friday, April 15, 2016 alle ore 21:02

    Il file php che devo richiamare risiede sul server come il db. Per connettersi al server è necessario inserire username e password che ho impostato alla creazione di tale macchina. Quindi presumo che per richiamare il file.php tramite chiamata ajax sia necessario che la chiamata conosca le appena citate informazioni. Per definire quest'ultime è suffuciente scrivere
    password: miaPassword,
    username: mioUsername,
    all'interno di
    $.ajax({

    })

    Rispondi a questo commento
    • Michele PisaniAutore Friday, April 15, 2016 alle ore 21:27

      Allora avevo capito bene all'inizio. Comunque non devi connetterti al server in quanto tale ma devi richiamare una pagina presente sul server come se fosse un sito internet. Fai una ricerca in rete su come configurare un sito su un server Linux, dopodichè vedrai che non ti servirà fornire nessun username e password del server dall'app.
      In tutti i casi, indipendentemente dal tuo specifico progetto, passare quei dati in Javascript è come consegnare le chiavi di casa a tutti quelli che incontri per strada.

      Rispondi a questo commento
  11. Luca Saturday, April 16, 2016 alle ore 10:50

    Quindi bisogna creare un sito sul server in modo da poterlo richiamare come dominio e non con ip?
    E in tal modo non chiede alcuna autenticazione?

    Rispondi a questo commento
    • Michele PisaniAutore Saturday, April 16, 2016 alle ore 11:10

      Utilizzando terzi livelli di domini dedicati non mi sono mai posto il problema, tuttavia anche se chiami l'ip non hai bisogno dell'autenticazione solo che non puntando a cartelle specificate ti risponde il 'sito' di default.
      Lato server ho più esperienza con Windows, per questo motivo ti avevo consigliato di cercare in rete come configurare il server Linux per i tuoi scopi, tuttavia il principio è lo stesso.

      Rispondi a questo commento
  12. Luca Saturday, April 16, 2016 alle ore 11:44

    Utilizzavo l'ip per la chiamata perché il mio server non è pubblicato in internet e mi connettevo tramite vpn.

    Se creassi un nuovo server, ad esempio con red hat, potrei richiamarlo con 'www.mioServer.it'.
    Secondo te con un server di questo genere funzionerebbe?

    Rispondi a questo commento
    • Michele PisaniAutore Saturday, April 16, 2016 alle ore 12:11

      Non so darti risposte certe perchè non ho mai provato questo tipo di approccio. Tentar non nuoce, impari sempre qualcosa.

      Rispondi a questo commento
  13. Luca Saturday, April 16, 2016 alle ore 11:46

    Ah ok. Quindi dovrei configurare il server in modo che richiamandolo mi indirizzi al file.php invece che al sito di default?

    Rispondi a questo commento
    • Michele PisaniAutore Saturday, April 16, 2016 alle ore 12:13

      In realtà può essere anche il sito di default, l'importante è che sia configurato in modo che, per dire, se chiami quella pagina da browser ti risponde. Ci scrivi "Hello World" e se lo visualizzi sul browser significa che non avrai problemi a richiamare quella pagina dall'app.

      Rispondi a questo commento
  14. Luca Monday, April 18, 2016 alle ore 19:20

    Quindi dici che dovrei praticamente sostituire il sito di default con la mia pagina php?

    Se così fosse però potrei richiamare solamente un file; a me invece serve richiamare più file php da più file html

    Rispondi a questo commento
    • Michele PisaniAutore Monday, April 18, 2016 alle ore 19:56

      Per sito di default intendo ovviamente la cartella dove esso risiede, poi di pagine da chiamare, presenti in quella cartella o sue sottocartelle, ne puoi creare quante ne vuoi... pagina1.php, pagina2.php, pagina3.php, ecc...

      Rispondi a questo commento
  15. Luca Monday, April 18, 2016 alle ore 21:43

    Ah ok allora stavo facendo nel modo giusto.

    Facendo una prova ho installato nel server linux il servizio ftp e inserendo nel browser il seguente url: " ftp://ip_server/file.php " visualizza esattamente quel file php, ma mettendo questo link nell'url della chiamata ajax non funziona...
    Sai darmi qualche spiegazione?

    Rispondi a questo commento
    • Michele PisaniAutore Monday, April 18, 2016 alle ore 22:30

      Che errore ti dà? Comunque non sono molto sicuro che con il protocollo ftp ti funzioni, perchè non riduci i dubbi al minimo ed utilizzi il protocollo http?

      Rispondi a questo commento
      • Luca Tuesday, April 19, 2016 alle ore 15:02

        Non dà errori, semplicemente non fa niente.

        Bo, siccome non mi funziona ho provato a installare ftp e provare con quello.

      • Michele PisaniAutore Wednesday, April 20, 2016 alle ore 00:50

        L'errore non lo vedi direttamente ma con buona probabilità in console te lo comunica.
        Dai un'occhiata a questo mio articolo:

        DEBUG DI APPLICAZIONI CORDOVA/PHONEGAP CON CHROME

        Se hai domande riguardo al debug ti chiedo gentilmente di postarle nei commenti di quell'articolo in modo da mantenere coerenza con l'argomento.

  16. Luca Wednesday, April 20, 2016 alle ore 15:28

    Ma per vedere se funziona la chiamata ajax posso eseguire la pagina html anche da terminale, giusto?
    Non è necessario creare l'apk con cordova ed eseguirla da smartphone...

    Rispondi a questo commento
    • Michele PisaniAutore Thursday, April 21, 2016 alle ore 00:18

      Da terminale non ho mai provato, dato che c'è la possibilità di effettuare il debug come spiegato nel link che ti ho indicato nel commento precedente, anche perchè "...creare l'apk con cordova ed eseguirla da smartphone..." si riduce, sempre da terminale, ad un:

      cordova run android

      E se ti dà errore lo vedi in console. Ti consiglio di seguire questo approccio che ti servirà anche in futuro per effettuare test più immediati e più affidabili rispetto ad un emulatore.

      Rispondi a questo commento
  17. ANDREA Friday, January 6, 2017 alle ore 20:19

    Mi da un errore quando provo a creare il mio primo progetto\: "Cordova" non è riconosciuto come variabile di sistema. Ho controllato anche le varibili di sistema ma non riesco a capire dove sia il problema.

    Rispondi a questo commento
    • Michele PisaniAutore Saturday, January 7, 2017 alle ore 13:19

      Ciao ANDREA,
      verifica che l'installazione di node.js sia stata effettuata correttamente e non siano occorsi errori durante il suo processo. Questo perchè l'installazione di cordova è delegata al comando 'npm' di Node.js.
      Alternativamente controlla se stai invocando, nella CLI, il comando per la creazione di un nuovo progetto dalla cartella 'bin'.

      Rispondi a questo commento
      • andrea Monday, January 9, 2017 alle ore 18:01

        Ciao sei stato gentilissimo a rispondere, comunque ho risolto reinstallando node.js, adesso è spuntato un nuovo problema durante la fase di debug

        command failed with exit code 1 error output

        • Michele PisaniAutore Tuesday, January 10, 2017 alle ore 00:36

          Ciao andrea,
          di niente e sono contento che tu sia riuscito a risolvere.
          Quest'altro errore che hai menzionato direi che è legato anch'esso a qualche installazione non andata a buon fine. Prova a rimuovere le piattaforme presenti nel progetto e a ricrearle, ad esempio:

          cordova platform remove android
          e poi:
          cordova platform add android

          Oppure a effettuare un 'clean' e poi il 'build' o alla peggio reinstallare l'SDK.

  18. andrea Thursday, January 12, 2017 alle ore 20:49

    Grazie Michele sei stato gentilissimo, un altro dubbio dopo aver testato applicazione con l'emulatore come faccio a convertire il file in apk per magari testarla su smartphone?

    Rispondi a questo commento
  19. Michele PisaniAutore Thursday, January 12, 2017 alle ore 21:39

    Ciao andrea,
    ti basta semplicemente collegare il dispositivo al computer via USB e (previa abilitazione sullo smartphone di 'Debug USB' dalle impostazioni per gli sviluppatori) digitare nella CLI\:

    cordova run android

    Rispondi a questo commento
  20. Michele PisaniAutore Sunday, January 15, 2017 alle ore 12:45

    Ciao andrea,
    se parte l'emulatore con lo smartphone collegato via USB significa che cordova non riesce vedere il dispositivo. Questo succede sicuramente nel caso in cui non hai attivato "Debug USB" dalle 'Opzioni sviluppatore' sul tuo smartphone (nel caso sia la prima volta ti sarà richiesto di installare i driver adb per il tuo dispositivo).
    Puoi provare a lanciare il comando\:

    adb device

    prima del comando\:

    cordova run android

    e verificare se effettivamente il tuo dispositivo risulta collegato o meno.

    In alternativa puoi provare a forzare l'avvio da device lanciando il seguente comando\:

    cordova run android --device

    Rispondi a questo commento

Scrivi un Commento

Il tuo indirizzo email non sarà pubblicato.
I campi contrassegnati da un * sono obbligatori

Articoli e Argomenti correlati

Il Canale YouTube in ITALIANO

1 VIDEO GRATIS ogni 2 settimane! ISCRIVITI!

Entra a far parte della community su Facebook

Categorie popolari

Iscriviti alla mia newsletter

La tua e-mail con me sarà al sicuro.
Non fornirò mai le tue informazioni a nessuno!

Ultimi commenti

Michele Pisani

Hai verificato se succede per tutte le pagine da un certo periodo di tempo in poi o solo su alcune?

Tecnowiz

Sono amministratore di un blog pure io... Intanto ti faccio i complimenti per questo articolo. …

Michele Pisani

Ciao Antonio, grazie per la fiducia :) In caso di più fogli è necessario inserire il codice del …

Antonio

Ciao Michele, ho acquistato il tuo libro che unitamente ai tuoi video sta diventando il mio corso …