2010-05-24 16 views
5

Voglio vedere .doc, .docx, .rtf, .ppt file in iphone.visualizza file .doc, .docx, .rtf, .ppt in iphone utilizzando Webview

Ma suppongo che qualcosa stia andando male al mio fianco e che non funzioni per i formati sopra, ma il mio codice funziona bene per i file .txt e .pdf.

Ho letto il documento relativo a Webview che afferma che supporta la visualizzazione del documento sopra.

sotto è il mio frammento per .doc

[webView loadData:requestData MIMEType:@"application/msword" textEncodingName:@"UTF-8" baseURL:nil]; 

per .ppt sto usando come tipo MIME "application/vnd.ms-powerpoint"

Nota: Se io sto facendo tipo MIME come "text/html" per .doc/.rtf quindi visualizza alcuni dati inutili Quindi penso che ci sia qualcosa che manca nel mio tipo da MIME.

Qualsiasi aiuto è molto apprezzato.

In attesa di risposta.

Aggiornamento: ........

Sembra che ci sia qualche problema con NSData per l'apertura di questo tipo di formati di file. I miei dati vengono crittografati, quindi non posso usare requestWithURL direttamente e altra cosa è che ho bisogno di passare le credenziali per accedere al file e le credenziali non lavorare proplerly se salvare le credenziali utilizzando

[[NSURLCredentialStorage sharedCredentialStorage] setDefaultCredential:credential 
             forProtectionSpace:protectionSpace]; 

e poi fare il richiesta utilizzando sotto

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]] ] 

c'è un modo posso usare NSData per i formati di cui sopra in modo che io possa fare chiamata asincrona e superare le mie credenziali e poi decodificare i dati e mostrarlo in WebView.

+0

prega di fare riferimento a questo insieme di tipi MIME (che funziona per pptx) - http://stackoverflow.com/questions/4212861/what-is-a -correct-mime-type-per-docx-pptx-etc –

risposta

4
Non

tutti questi formati (docx) sono supportati. Questo assomiglia allo official word. Nell'esempio, Apple non specifica un tipo mime.

This question suggerisce che è necessario utilizzare NSURLRequest invece di loadData.

Edit:

Per quanto ho visto, non si può passare direttamente i dati al loadData per questi tipi.

Il lavoro facile è scrivere in un file temporaneo. Puoi eliminarlo in webViewDidFinishLoad o, tecnicamente, non appena il file è stato aperto.

Il duro lavoro è usare NSURLCache. Dovresti essere in grado di implementare un NSURLCache personalizzato e far sì che WebKit lo usi tramite setSharedURLCache. La tua cache in pratica saprebbe come ottenere i tuoi file crittografati locali e far finta che siano memorizzati nella cache. Non ho provato questo, ma penso che sia la soluzione migliore. Questo approccio può essere bloccato proprio come loadData.

+1

Grazie per la risposta. Poiché i dati sono crittografati, sembra che non sia possibile utilizzare direttamente NSURLRequest. C'è un modo per utilizzare NSData per aprire i miei file .doc, .ppt. – Ekra

+1

Grazie per la risposta. Ho provato a provare il primo metodo. Lavorare sul secondo metodo – Ekra

0

provarlo su un iPhone al posto di Simulator

3

È necessario fornire qualcosa a baseURL :.Ad esempio:

[webView loadData:requestData MIMEType:@"application/msword" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@"http://localhost/"]]; 

Funziona per me ora.

5

Provare a utilizzare un QuickLook Framework che è una caratteristica sorprendente data da Apple. Se hai visto questo, quando selezioni QUALSIASI FILE su MAC System e fai clic su BARRA SPAZIATRICE, otterrai un'anteprima rapida del tuo file che potrebbe essere qualsiasi cosa ... * .pdf, * .doc, * .docx o qualsiasi altra cosa. .. Anche se non hai installato quei software per gli stessi file, otterrai una PREVIEW per quei file ...

Il framework QuickLook fornisce anche la stessa funzionalità ... Passare attraverso alcuni dei collegamenti per lo stesso. .

+1

so che si desidera utilizzare WebView ma questo è anche il migliore per tutti i file ... :) – DShah

+1

grazie per il tuo commento. Cercherò anche questa opzione – Ekra

Problemi correlati