2010-05-24 10 views
5

Quiero ver el archivo .doc, .docx, .rtf, .ppt en iphone.ver archivo .doc, .docx, .rtf, .ppt en iphone con Webview

Pero creo que algo va mal a mi lado y no funciona para los formatos anteriores, pero mi código funciona bien para archivos .txt y .pdf.

Tengo la lectura del documento con respecto a Webview que indica que es compatible con la visualización del documento anterior.

a continuación es mi fragmento de .doc

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

para .ppt estoy usando tipo MIME como "application/vnd.ms-powerpoint"

Nota: Si estoy haciendo tipo MIME como "text/html" para .doc/.rtf luego muestra algunos datos basura, así que creo que hay algo que falta en el tipo MIME de mi parte.

Cualquier ayuda es muy apreciada.

Esperando su respuesta.

actualización: ........

Parece que hay algún problema con NSData para la apertura de este tipo de formatos de archivo. Mi datos son encriptados por lo que no puedo usar requestWithURL directamente y otra cosa es que necesito para pasar credenciales para obtener el archivo y las credenciales no funciona proplerly si salvo las credenciales utilizando

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

y luego hacer el solicitud mediante el siguiente

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

¿hay alguna manera de que pueda utilizar NSData en los formatos anteriores para que pueda realizar una llamada asincrónica y pasar mis credenciales y luego descifrar los datos y mostrarlo en vista web.

+0

favor refiérase a este conjunto de tipos MIME (que funciona para pptx) - http://stackoverflow.com/questions/4212861/what-is-a -correct-mime-type-for-docx-pptx-etc –

Respuesta

4
No

todos esos formatos (docx) son compatibles. Esto se parece al official word. En el ejemplo, Apple no especifica un tipo de mimo.

This question sugiere que debe usar una solicitud NSURL en lugar de loadData.

Editar:

Por lo que he visto, no se puede pasar directamente los datos a loadData para estos tipos.

El trabajo más fácil consiste en escribir en un archivo temporal. Puede eliminarlo en webViewDidFinishLoad o, técnicamente, tan pronto como se haya abierto el archivo.

El arduo trabajo consiste en utilizar NSURLCache. Debería poder implementar un NSURLCache personalizado y hacer que WebKit lo use a través de setSharedURLCache. Su caché básicamente sabrá cómo obtener sus archivos encriptados locales y pretender que están en caché. No lo he intentado, pero creo que es tu mejor apuesta. Este enfoque puede ser bloqueado al igual que loadData.

+1

Gracias por su respuesta. Por datos está encriptado por lo que parece que no puedo usar NSURLRequest directamente. ¿Hay alguna forma en que pueda usar NSData para abrir mis archivos .doc, .ppt? – Ekra

+1

Gracias por su respuesta. Tengo el primer método probado que funciona. Trabajando en el segundo método – Ekra

0

probarlo en un iPhone en lugar de Simulador

3

Debe proporcionar algo a baseURL :.Por ejemplo:

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

Funciona para mí ahora.

5

Intente utilizar un QuickLook Framework que es una característica increíble dada por Apple. Si ha visto esto, cuando seleccione CUALQUIER ARCHIVO en el Sistema MAC y haga clic en BARRA ESPACIADORA, obtendrá una vista previa rápida de su archivo. Puede ser cualquier cosa ... * .pdf, * .doc, * .docx o cualquier otra cosa. .. Incluso si no ha instalado esos softwares para los mismos archivos, obtendrá una VISTA PREVIA para esos archivos ...

El marco QuickLook también ofrece la misma funcionalidad ... Consulte algunos de los enlaces para el mismo. .

+1

Sé que quiere usar WebView pero también es mejor para cualquier archivo ... :) – DShah

+1

gracias por su comentario. Voy a buscar esta opción también – Ekra

Cuestiones relacionadas