2011-04-12 8 views
9

Tengo un UIWebView y quiero cargar una imagen SVG en él. El contenido del archivo es SVG puro, es decir, <svg>...</svg>. Se carga el archivo finas en normal y Safari Mobile, y también en un UIWebView utilizando loadRequest: haciendo lo siguiente:Diferencia entre los métodos de UIWebView loadHTMLString: y loadRequest

url = [NSURL fileURLWithPath:path]; 
NSURLRequest *req = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:req]; 

Sin embargo, si me carga el contenido del archivo en una cadena, y tratar de cargar el código HTML cadena en la vista web, nada muestra:

html = [NSString stringWithContentsOfFile:path 
           encoding:NSASCIIStringEncoding 
            error:nil]; 
[webView loadHTMLString:html baseURL:nil]; 

¿Hay alguna razón entre las dos técnicas anteriores? ¿No deberían dar los mismos resultados? El archivo es puro ASCII, así que no creo que haya un problema de codificación.

Supongo que puedo obtener lo que necesito hacer ahora usando un archivo, pero odio usar el sistema de archivos para datos no persistentes.

¡Cualquier ayuda es muy apreciada!

Gracias, Ron

+0

¿El problema podría ser que mi "html" no es realmente html? Mi archivo comienza y finaliza con ' ...'. ¿Es posible que la carga de una solicitud maneje archivos que no sean HTML, mientras que loadHTMLString requiere que el texto sea HTML? – Ron

Respuesta

9

Para resolver este problema tiene que usar loadData:MIMEType:textEncodingName:baseURL: lugar.

NSData *data = [html dataUsingEncoding:NSUTF8StringEncoding]; 
[webView loadData:data MIMEType:@"application/xhtml+xml" textEncodingName:@"utf-8" baseURL:baseUrl]; 
+0

Esto funcionó perfecto. ¡Muchas gracias por la ayuda! ¡Es muy apreciado! – Ron

+0

Utilicé MIMEType "text/html" porque xhtml + xml es estricto y provocará errores de representación si el html no es perfecto (es decir, todas las etiquetas deben cerrarse correctamente, etc.) – Larry

0

no estoy seguro de esto pero si el baseURL se ajusta a cero, creo que la vista web no sabe de dónde cargar el contenido.

Esperanza SO esta pregunta ayuda u Link to resources inside WebView - iPhone

+0

¡Gracias por la información! En mi caso, sin embargo, no creo que eso sea lo que causa el problema, ya que el HTML es completamente independiente. – Ron

Cuestiones relacionadas