2012-05-01 15 views
12

Vengo qui dopo molte ore di ricerca di una soluzione e provare diversi approcci per risolvere questo problema che sto avendo con JQuery Mobile e la mia app per iPad.JQuery Mobile non funziona all'interno di UIWebView

Quello che sto cercando di fare è un'app di reporting con Fusion Charts. Ho eseguito correttamente il rendering dei grafici nelle viste Web (UIWebView) utilizzando metodi diversi e seguendo diversi esempi, ma quello che mi piacerebbe fare ora è realizzare la stessa operazione utilizzando il framework JQuery Mobile.

Sono non utilizzando PhoneGap e ho seguito i passaggi della lettera relativa all'integrazione di JQuery Mobile + Xcode (credo). I grafici vengono caricati senza problemi sul mio desktop e browser mobile (iPad, iPhone 4 e iPod Touch 2G), ma non riesco a caricare la mia UIWebView (anche se sto usando lo stesso esatto codice).

Questo è quello che sto facendo:

1) Aggiunta di file necessari (JS, CSS e HTML) per il progetto di usarli a livello locale. Dopo averli aggiunti, spostai tutto con l'estensione .js da "Compile Sources" a "Copy Bundle Resources". Ecco come si presenta:

enter image description here

enter image description here

2) Caricare il mio file di prova HTML (page_A1.html) nella visualizzazione Web:

enter image description here

3) Verificare che tutto è impostato sul file HTML con i percorsi corretti e l'ultima versione di framework:

enter image description here

4) Crea ed esegui solo per ottenere una vista Web vuota.

Se risulto JavaScript con un avviso del genere:

enter image description here

Mostrerà l'allarme dimostrando Javascript sta lavorando:

enter image description here

E se ho messo un po 'di testo sul contenitore in cui deve essere visualizzato il grafico:

enter image description here

Prendo il testo all'interno della visualizzazione Web:

enter image description here

Ho anche provato con collegamenti quadro remoto invece di quelli locali e vecchia versione delle librerie senza fortuna.Niente di diverso accade:

enter image description here

Sembra obvius a me che

$(document).ready(function(){ 

non si fa notare, o invocata, Xcode.

Questo è quello che mi piacerebbe realizzare:

enter image description here

Non so che altro per testare. Se hai qualche idea, sarei più che grato.

risposta

10

Nevermind guys. Finalmente l'ho capito.

Alcune vecchie abitudini dei giorni di sviluppo web mi hanno giocato qui.

E tini fuori voi non c'è bisogno di specificare la struttura di directory interna per il vostro file CSS e JS quindi questo:

<link rel="stylesheet" href="css/jquery.mobile-1.1.0.min.css" /> 

<script src="js/jquery-1.7.2.min.js"></script> 

<script src="js/jquery.mobile-1.1.0.min.js"></script> 

shoudl davvero essere come questo in Xcode:

<link rel="stylesheet" href="jquery.mobile-1.1.0.min.css" /> 

<script src="jquery-1.7.2.min.js"></script> 

<script src="jquery.mobile-1.1.0.min.js"></script> 

Incredibile quanto tempo mi ci è voluto per scoprirlo.

Ora funziona.

+1

Bene .. Mi hai salvato la vita .. – rdurand

+0

Ho lo stesso problema, ma con un test di fisarmonica. Mi potete aiutare? –

+0

Le informazioni pubblicate qui non ti hanno aiutato? In caso contrario, qual è il problema specifico che stai riscontrando? –

4

Il modo corretto per eseguire questa operazione è caricare il file JS come in una stringa e richiamare il metodo [stringByEvaluatingJavascriptFromString: @ "Javascript here ..."] di UIWebView.

Anche se questo non è molto diverso, quindi li codifica nei file html, lo modularizza ancora di più. Happy Coding :)

+0

Questo ha funzionato per me! :-) molte grazie. – byJeevan