2012-12-05 10 views
5

Sto costruendo un'app per iPhone su Monotouch. Parte del mio progetto utilizza il contenuto del sito web locale. Copia tutto il codice html, js, css e le immagini utilizzate per il sito web in una cartella e le importa nel mio progetto monotouch. Ho impostato l'opzione di compilazione per tutti questi file sul contenuto.monotouch uiwebview non trova localmente html

ho caricare il contenuto web locale come di seguito:

this.url = Path.Combine (NSBundle.MainBundle.BundlePath, "Contenuto/index.html"); webView.LoadRequest (new NSUrlRequest (new NSUrl (this.url, false)));

Il problema è quando si esegue il progetto, non si può trovare il mio sito web locale e l'ho ottenuto il seguente messaggio quando si tenta di eseguire il debug:

L'URL richiesto non è stato trovato su questo server.

/Users/* ****/Libreria/Application Support/iPhone Simulator /4.3/Applicazioni/092E0D85-92F4-4F4E-9CD2-3FBBCD797F76/Project.app/Content/index.html

la cosa divertente è quando copio il link per Safari, il web viene visualizzato senza alcun problema

ho cercato di cancellare e ricostruire le poche volte del progetto, ma non cambia nulla.

Qualcuno può aiutarmi con questo?

Sto utilizzando OS X Moutain Lion 10.8.2, MonoDevelop 3.0.5, 6.0.6 MonoTouch, Xcode 4.5.2

Grazie in anticipo

+0

Sei ** veramente ** utilizzando MonoTouch 3.0.2? ha pochi anni e difficilmente troverai persone che lo usano più. La versione corrente (stabile) è 6.0.6 e l'ultima versione compatibile con Snow Leopard era 5.4 (usando Xcode 4.2). – poupou

+0

Ci scusiamo per errore di battitura.Io uso MonoDevelop 3.0.5 e 5.x Monotouch. Sto aggiornando l'intero sistema incluso OS X, xcode e Monotouch al più recente. Spero che risolva il problema. – hoangnm284

+0

Ho aggiornato tutto per i più nuovi, ma questo è ancora un problema. Qualcuno potrebbe avere esperienza in merito? – hoangnm284

risposta

2

E 'strano, ha funzionato bene per me.

Prova a modificare:

var fileName = "Content/index.html"; 
webView.LoadHtmlString (File.ReadAllText (fileName), 
         NSUrl.FromFilename (fileName)); 
0

Grazie per il vostro aiuto.

Mi sono appena reso conto che ho inserito parametri nel collegamento, ad esempio: index.html? P1 = v1 & p2 = v2 e rende il collegamento non funzionante. Se rimuovo quei parametri, funziona senza alcun problema.

Ci scusiamo per la mancanza di informazioni sulla mia domanda.

Ora, se non riesco a fare come il normale sito Web, come posso passare i parametri al mio sito Web locale?

+0

se è necessario aggiungere ulteriori informazioni alla tua domanda, per favore modificalo. Aggiungere commenti come risposta è fonte di confusione. – Jason

+0

Detto questo, quando si passano i parametri sul querystring di solito c'è qualcosa sul server (PHP, ASP.NET, Rails, ecc.) Che li interpreta e risponde con HTML. Quando si utilizzano le pagine HTML locali nella propria app, si tratta semplicemente di HTML, non è in corso alcuna elaborazione sul lato server. – Jason

+0

Utilizzando javascript, possiamo ancora analizzare i parametri per il metodo GET. Ho letto da qualche parte che usando jQuery possiamo ottenere parametri per POST, ma non l'ho testato. Il problema con MT è che considerano i parametri come parte del nome del file in modo che non possano non trovarlo. Ho risolto il problema rimuovendo i parametri dal nome del file, quindi utilizzando MT esegui la funzione javascript per passare i miei parametri. Grazie per tutti i tuoi aiuti. – hoangnm284

0

Assicurati di impostare Build Action per htm su BundleResource - il tuo codice con queste impostazioni funziona per me!

+2

un commento, che dovrebbe essere – MuhammadHani

1

È possibile utilizzare NSURLComponent come mostrato di seguito. I parametri possono essere passati nella proprietà Query NSURLComponent.

 string viewerPath = Path.Combine(NSBundle.MainBundle.BundlePath, string.Format("Content/pdfjs/web/{0}", _pdfViewerFileName)); 
     string queryString = string.Format("file={0}", _pdfFilePath); 
     NSUrlComponents components = new NSUrlComponents(viewerPath); 
     components.Query = queryString; 
     Control.LoadRequest(new NSUrlRequest(components.Url)); 
Problemi correlati