4

我在 UIWebView 上遇到问题。我有一个显示 html 字符串的 WebView。此 html 字符串包含:

  • html文本
  • 本地图像
  • FB:评论

起初我只有 Html + 本地图像,所以我使用的是众所周知的方法:

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[webview loadHTMLString:htmlString baseURL:baseURL];

一切都很完美。但后来我不得不实施 facebook 评论http://developers.facebook.com/docs/reference/plugins/comments/

由于我的旧 BaseURL 不再适用于 facebook 我尝试加载

NSURL *baseURL = [NSURL URLWithString:@"http://www.facebook.com/"];

这使我的 facebook 工作,但本地图像不会显示在 web 视图中,即使使用绝对路径。

任何帮助将不胜感激。谢谢你的时间

4

1 回答 1

2

有一种解决方案可以将img标签与 base64 编码的图像数据一起使用,而不是使用 url。这应该不是问题,因为您在本地拥有图像,请参阅 html示例

要快速测试它,您可以使用在线编码服务(50kb 限制)

原来的答案在这里


以及截断的 base64-sample 以供将来参考:

<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>
于 2012-05-23T04:03:31.193 回答