iphone - open - web view swift 4
UIWebView para mostrar la imagen local y el comentario de Facebook (1)
Estoy enfrentando un problema en un UIWebView. Obtuve un WebView que muestra una cadena html. Esta cadena html contiene:
- Texto html
- Imágenes locales
- fb: comentarios
Al principio solo tenía Html + imagen local así que estaba usando el método conocido:
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[webview loadHTMLString:htmlString baseURL:baseURL];
Todo funcionó a la perfección. Pero luego tuve que implementar los comentarios de Facebook http://developers.facebook.com/docs/reference/plugins/comments/
Como mi viejo BaseURL ya no funcionaba para facebook, traté de cargarlo
NSURL *baseURL = [NSURL URLWithString:@"http://www.facebook.com/"];
Esto hizo que mi Facebook funcionara, pero la imagen local no se muestra dentro de la vista web, incluso con una ruta absoluta.
Cualquier ayuda seria apreciada. Gracias por tu tiempo
Existe una solución para usar la etiqueta img
con datos de imágenes codificadas en base64 en lugar de la url. Eso no debería ser un problema ya que tiene la imagen localmente, vea la muestra html.
Para probarlo rápidamente, puede usar el servicio de codificación en línea (limitación de 50 kb)
La respuesta original está aquí
Y la base64 muestra truncada para referencia futura:
<html>
<body>
<div id="fb-root"></div>
FB1
<script>
window.fbAsyncInit = function() {
FB.init({
appId : null,
channelUrl : null,
status : true,
cookie : true,
xfbml : true
});
};
(function(d){
var js, id = ''facebook-jssdk'', ref = d.getElementsByTagName(''script'')[0];
if (d.getElementById(id)) {return;}
js = d.createElement(''script''); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
FB2
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUh......lAmeQ/IAAAAASUVORK5CYII=" alt="Screen Shot 2012-05-23 at 6.53.28 AM.png" />
<div class="fb-comments" data-href="http://facebook.com" data-num-posts="2" data-width="470"></div>
</body>
</html>