2012-05-15 29 views
4

我在UIWebView上遇到了一個問題。 我得到了一個顯示html字符串的WebView。此HTML字符串包含:UIWebView顯示本地圖像和Facebook評論

  • 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視圖中,即使是絕對路徑。

任何幫助將不勝感激。感謝您的時間

+0

通過我的類似嘗試,我無法獲得Web視圖,以同時參考本地和基於Web的內容。這是一個或另一個,而不是兩種情況。希望有人會對此作出回答,或至少確認是否不可能。 –

+1

@Mark Reid部分可能,請參閱下面的鏈接。 –

回答

2

有一個解決方案使用img標記與base64編碼的圖像數據,而不是url。 這不應該是一個問題,因爲你有本地圖像,請參閱html sample

若要快速測試它,你可以使用在線編碼service(50KB限制)

原來答案是here


和截短的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> 
+0

它解決了我的問題。非常感謝 – ophilbert

+0

解決了我的問題,謝謝! –