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.
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.
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.
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.
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.
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:
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:
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:
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:
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:
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.
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.
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.
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à.
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
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.
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
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.
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
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.
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.
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.
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
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).
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.
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.
Un altra domanda, come posso leggere i valori inseriti nei campi text del HTML, passarli al file .php e poi inserirli?
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.
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!
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?
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.
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?
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.
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({
})
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.
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?
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.
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?
Non so darti risposte certe perchè non ho mai provato questo tipo di approccio. Tentar non nuoce, impari sempre qualcosa.
Ah ok. Quindi dovrei configurare il server in modo che richiamandolo mi indirizzi al file.php invece che al sito di default?
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.
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
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...
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?
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?
Non dà errori, semplicemente non fa niente.
Bo, siccome non mi funziona ho provato a installare ftp e provare con quello.
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.
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...
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.
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.
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'.
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
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.
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?
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
Ciao Michele, ho provato come hai detto ma mi si apre l'emulatore sul pc
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