Ho quello che penso sia un set abbastanza standard di una web-app esistente e vorrei ricevere consigli su come adattarlo al meglio per creare versioni native tramite PhoneGap, in un modo che possiamo continuare a sviluppare l'app web e ad aggiornare le versioni generate da esso con una rilavorazione minima.problemi di percorso porting web-app su PhoneGap
Sono un principiante PhoneGap. Ho cercato in giro e provato vari suggerimenti da StackOverflow ecc senza fortuna, almeno per il mio set-up.
L'applicazione è sviluppata in GWT e si compone di:
risorse statiche in una cartella condivisa per tutte le app
/static/con le immagini, i caratteri, css. Il CSS definire alcuni caratteri-famiglie, fa riferimento a file di font in/font
Ci riferiamo a queste risorse statiche da file HTML e codice JavaScript utilizzando percorsi assoluti.
risorse statiche in un numero di sottocartelle (dai moduli GWT FYI)
Come/LoginGadget, che dovranno GWT generati HTML, JavaScript e talvolta sottocartelle con css e css-immagini.
GWT-RPC
Questi sono servlet fondamentalmente dove GWT si prende cura di serializzazione, ecc, e vi si accede dal nostro codice client tramite XHR sotto le coperte
PhoneGap Costruire
ho iniziato a guardare creare un'applicazione compressa usando PhoneGap e incappare in alcuni problemi in cui ho bisogno di consigli (esempio Android).
Ho creato/assets/www e ho inserito un file index.html e l'ho avviato. ho copiato una versione del nostro/cartella/static e la nostra cartella/LoginGadget sotto quel "root" per vedere, e ha iniziato utilizzando
super.loadUrl("file:///android_asset/www/index.html");
che funziona.
In tutti i nostri file HTML e Javascript generati da GWT abbiamo riferimenti a risorse statiche che utilizzano sia percorsi assoluti (ad esempio "/ static/....") che relativi (ad esempio da un LoginGadget Javascript, potrebbe fare riferimento a "css/some.css ").
I percorsi relativi funzionano, poiché risiedono "sotto" la cartella in cui si trovano gli html/j che li fanno riferimento.
Problema 1
Tuttavia, i riferimenti a percorsi assoluti non riescono, nonostante PhoneGap partire dicendo:
DroidGap: url=file:///android_asset/www/index.html baseUrl=file:///android_asset/www/
mi aspettavo un riferimento a "/static/images/file.png" dal dicono indice. html da aggiungere alla "baseUrl" per dare file: ///android_asset/www/static/images/file.png e quindi lavorare, poiché è lì che si trova il file.
Ho dovuto modificare index.html per utilizzare "static/image/file.png" perché funzionasse. Ma dovrei ricompilare tutte le nostre app GWT con una configurazione diversa per modificare tutti i riferimenti alle risorse, ei riferimenti da altri file nelle sottocartelle in "/ static /" non funzioneranno se modificati per essere solo "statici" /".
Come posso ottenere riferimenti di percorso assoluti a "mappa" su/assets/www o simile? (Vedi sotto, ho guardato utilizzando il tag "base" ....)
Problema 2
Le RPC GWT fanno la richiesta XHR al server il codice html/js è stato servito da. Funziona perfettamente in quanto l'app non ha il nome del server host hard-coded, ed è infatti distribuita su molti appidini/domini appendentesi per test ecc.
Qui i file html/js sono "serviti" da file: /// quindi ho bisogno di specificare il server in qualche modo.
Ho provato a specificare con il tag "base" come documentato, ma qualsiasi riferimento che ho nel mio html/js a una risorsa che non specifica "file: //" sembra essere fatto al server specificato in "base" ..... quindi non sto caricando più le mie risorse locali e fondamentalmente ho un'app web servita dal mio server.
Vuoi
Quello che mi piacerebbe fare, è quello di essere in grado di prendere la (abbastanza grande) compilato e testati app dalla guerra di mio WAB-app (/ statica e tutte le mie cartelle/GWT-Module) intatto e copiarli in/assets/www sulla mia app PhoneGap e quindi aggiungere qualche piastra di caldaia o codice di avvio ed eseguire come è.
suona come una grande richiesta, ma penso che se potessi specificare correttamente due cose: Percorso
file da utilizzare come "root" per i percorsi assoluti per le richieste di risorse che non specificano un http/il protocollo HTTPS (o altri protocolli ..... che ho già visto sono gestiti in DroidGap.java)
del server (protocollo, hostname, porto) a utilizzare per qualsiasi XHR richieste
Allora tutto sarebbe uscito nel lavaggio!
Ho pensato che si sarebbe trattato di un "standard" fallito e già coperto. Forse lo è e mi manca qualcosa.
Commenti? suggerimenti?
Grazie in anticipo per qualsiasi aiuto.
attenzione con i caratteri della dogana. Non tutti i browser lo supportano bene. Per esempio. WP7 no. – Loda
Faccio spesso questo tipo di sviluppo. Non sono sicuro del motivo per cui utilizzeresti mai percorsi assoluti. Usa percorsi relativi solo come il punto di PhoneGap è quello di costruire per più dispositivi. –