2015-09-24 57 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,然后把它传递给它的意思是。 :)