Make an app with UIWebView which open a webpage with protocol-relative styles & images, such as <img src="//example.com/image.png">
(examples for http or https).
Override the page loading process via your custom NSURLConnection
, this way.
Result: it won't display the images! Though, Safari and other browsers show them correctly...
I inspected the page opened in WebView and saw weird requests there. They looked like regular URLs, but with applewebdata scheme, e.g. applewebdata://art-u1.infcdn.net/articles_uploads/2/2586/thumb/3Dtouch%20Main-665x.png
. Yay! It doesn't know the "base" scheme for the relative URL //art-u1.infcdn.net/articles_uploads/2/2586/thumb/3Dtouch%20Main-665x.png
and gives it that Apple's fake scheme. So... the problem is here:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[m_webView loadData:webdata
MIMEType:@"text/html"
textEncodingName:@"UTF-8"
baseURL:nil]; /// WTF!
}
Solution: just save the initial URL to some m_currentPageUrl
when starting the request, and then pass it to where it's meant to be. :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With