2015-09-24 77 views
5
  1. 加載圖像製作用的UIWebView一個應用程序,它打開網頁與相對協議樣式&圖像,諸如<img src="//example.com/image.png">(爲httphttps例子)。UIWebView中不從相對協議網址

  2. 通過您的自定義NSURLConnectionthis way覆蓋頁面加載過程。

結果:它不會顯示圖像!雖然,Safari和其他瀏覽器正確顯示它們...

回答

3

我檢查了在WebView中打開的頁面,並在那裏看到奇怪的請求。它們看起來像普通的URL,但是有applewebdata方案,例如, applewebdata://art-u1.infcdn.net/articles_uploads/2/2586/thumb/3Dtouch%20Main-665x.png。好極了!它不知道相對URL //art-u1.infcdn.net/articles_uploads/2/2586/thumb/3Dtouch%20Main-665x.png的「基本」方案,並給出了該方案的假冒方案。所以......問題就在這裏:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    [m_webView loadData:webdata 
       MIMEType:@"text/html" 
     textEncodingName:@"UTF-8" 
       baseURL:nil]; /// WTF! 
} 

解決方法:啓動請求時的初始URL只保存一些m_currentPageUrl,然後把它傳遞給它的意思是。 :)