Cargar image en el file HTML local – UIWebView

Estoy trabajando en una aplicación para iPhone que necesita abrir files html remotos y usar imágenes locales. Encontré esta respuesta y es la solución perfecta para mí:

iOS WebView html remoto con files de image locales

pero el problema es que esta solución carga solo la primera image cuando bash cargar más imágenes, así:

<html> <body> <h1>we are loading a custom protocl</h1> <b>image?</b><br/> <img src="myapp://image1.png" /> <img src="myapp://image1.png" /> <img src="myapp://image2.png" /> <img src="myapp://image3.png" /> <body> </html> 

La página mostrará la primera image a la derecha pero las otras imágenes mostrarán la fuente del primero.

¿Por qué está utilizando implementaciones de protocolo personalizadas para cargar imágenes locales en un file html?

Puede configurar fácilmente la raíz del html a la siguiente:

 [webView loadHTMLString:htmlString baseURL:[[NSBundle mainBundle] bundleURL]]; 

Esto cargará todos los files de image de su package.

O bien, puede anular la llamada de carga, con un delegado de webview así:

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 

Y allí se personaliza completamente cómo y dónde se deben cargar los files.

puede usar la misma idea en iOS WebView html remoto con files de image locales, pero, utilice un nombre de protocolo personalizado diferente para cada image. Por ejemplo

 <html> <body> <h1>we are loading a custom protocl</h1> <b>image?</b><br/> <img src="myapp://image1.png" /> <img src="myapp1://image1.png" /> <img src="myapp2://image2.png" /> <img src="myapp3://image3.png" /> <body> </html> 

Luego pregunte qué nombre de protocolo se usó en el método canInitWithRequest , luego puede saber qué image cargará en el método startLoading .

Nota: canInitWithRequest es un método de class por lo que puede declarar una variable estática para contener el nombre del file de image en el método canInitWithRequest