-
使用UIWebView制作一个应用程序,打开具有协议相关样式的网页&图像,例如
<img src="//example.com/image.png">
(http或https的示例(。 -
通过自定义
NSURLConnection
覆盖页面加载过程。
结果:它不会显示图像!尽管如此,Safari和其他浏览器显示它们是正确的。。。
我检查了在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
,然后将其传递到它应该位于的位置。:(