<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ZenBrains &#187; bundle</title>
	<atom:link href="http://www.zenbrains.com/blog/tag/bundle/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zenbrains.com/blog</link>
	<description>IPhone Development Team</description>
	<lastBuildDate>Tue, 17 May 2011 21:06:43 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>¿Cómo mostrar imágenes (CSS, scripts y más) en UIWebView?</title>
		<link>http://www.zenbrains.com/blog/2010/05/%c2%bfcomo-mostrar-imagenes-css-scripts-y-mas-en-uiwebview/</link>
		<comments>http://www.zenbrains.com/blog/2010/05/%c2%bfcomo-mostrar-imagenes-css-scripts-y-mas-en-uiwebview/#comments</comments>
		<pubDate>Wed, 05 May 2010 16:50:41 +0000</pubDate>
		<dc:creator>Aram Julhakyan</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[bundle]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[uiwebview]]></category>

		<guid isPermaLink="false">http://www.zenbrains.com/blog/?p=270</guid>
		<description><![CDATA[Es una de las preguntas más frecuentes en los foros de programación iPhone. Por qué cuando ponemos &#60;img src=&#8221;miFoto.jpg&#8221; /&#62; no sale nada si tenemos miFoto.jpg entre nuestros ficheros de recursos añadidos en XCode? Supongamos que el código que usamos para cargar el html del nuestro UIWebView es el siguiente: NSString *html = @&#34;&#60;html&#62;&#60;body&#62;&#60;img src='miFoto.jpg' [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.zenbrains.com%2Fblog%2F2010%2F05%2F%25c2%25bfcomo-mostrar-imagenes-css-scripts-y-mas-en-uiwebview%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.zenbrains.com%2Fblog%2F2010%2F05%2F%25c2%25bfcomo-mostrar-imagenes-css-scripts-y-mas-en-uiwebview%2F&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Es una de las preguntas más frecuentes en los foros de programación iPhone.</p>
<p>Por qué cuando ponemos &lt;img src=&#8221;miFoto.jpg&#8221; /&gt; no sale nada si tenemos miFoto.jpg entre nuestros ficheros de recursos añadidos en XCode?</p>
<p>Supongamos que el código que usamos para cargar el html del nuestro UIWebView es el siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span>html <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;&lt;html&gt;&lt;body&gt;&lt;img src='miFoto.jpg' /&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span>;
<span style="color: #002200;">&#91;</span>miUIWebView loadHTMLString<span style="color: #002200;">:</span>html baseURL<span style="color: #002200;">:</span><span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span>;</pre></div></div>

<p>Con esto vemos que no se muestra ninguna imagen. El problema está en que UIWebView no sabe donde buscar la foto. Nosotros le hemos dicho la foto que queremos pero no hemos dicho donde tiene que buscarlo, para eso tenemos el parámetro baseURL.</p>
<p>Nuestra imagen está entre nuestros ficheros de recursos por lo que la UIWebView tiene que ir a buscar la imagen entre los ficheros de recursos y para eso tenemos que pasar el path de la carpeta de recursos vía el parámetro baseURL.</p>
<p>Entonces, la versión correcta del código sería el siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span>path <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #400080;">NSURL</span> fileURLWithPath<span style="color: #002200;">:</span><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSBundle</span> mainBundle<span style="color: #002200;">&#93;</span> bundlePath<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;
<span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span>html <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;&lt;html&gt;&lt;body&gt;&lt;img src='miFoto.jpg' /&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span>;
<span style="color: #002200;">&#91;</span>miUIWebView loadHTMLString<span style="color: #002200;">:</span>html baseURL<span style="color: #002200;">:</span>path<span style="color: #002200;">&#93;</span>;</pre></div></div>

<p>Y todo esto que se ha explicado también es válido en el caso de que queramos incluir scripts externos o ficheros CSS.</p>
<p>Sorprendentemente hay gente que no conoce esta solución tan simple y <a href="http://iphoneincubator.com/blog/windows-views/display-images-in-uiwebview">hacen &#8220;cosas raras&#8221;</a> sólo para poder mostrar fotos.</p>
<p>Una forma poco común de mostrar imágenes es convertirlos a base64 y usar la <a href="http://es.wikipedia.org/wiki/Data:_URL">esquema data:URI</a> para mostrarlos en una página web.</p>
<p>Ejemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;img src=&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoA
AAAKCAYAAACNMs+9AAAABGdBTUEAALGPC/xhBQ
AAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0S
U1FB9YGARc5KB0XV+IAAAAddEVYdENvbW1lbnQAQ3Jl
YXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1JREFUGNO9zL
0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7
jqch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6M
Jpcq2MLaI97CER3N0vr4MkhoXe0rZigAAAABJRU5ErkJggg==&quot; alt=&quot;Red dot&quot; /&gt;</pre></div></div>

<p>Esto en la mayoría de los casos no se usa pero también tiene su utilidad en diferentes entornos. Por ejemplo antes de la versión 3.0 de iPhone OS no podíamos adjuntar imágenes a los emails desde nuestro código y muchos lo solucionaron parcialmente pasando la imagen como texto (en base 64).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zenbrains.com/blog/2010/05/%c2%bfcomo-mostrar-imagenes-css-scripts-y-mas-en-uiwebview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

