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

imgURL の代わりに base64 でエンコードされた画像データを含むタグを使用するソリューションがあります。画像はローカルにあるので問題ありません。htmlサンプルを参照してください。

すぐにテストするには、オンライン エンコーディングサービスを使用できます(50kb の制限)。

元の答えはここにあります


そして、将来の参照用に切り捨てられた base64 サンプル:

<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 に答える