UIWebView 不从协议相对 URL 加载图像

Posted

技术标签:

【中文标题】UIWebView 不从协议相对 URL 加载图像【英文标题】:UIWebView doesn't load images from protocol-relative URL 【发布时间】:2015-12-22 04:02:53 【问题描述】:

    使用 UIWebView 制作一个应用程序,该应用程序打开一个带有协议相关样式和图像的网页,例如 <img src="//example.com/image.png">(http 或 https 的示例)。

    通过您的自定义NSURLConnection、this way 覆盖页面加载过程。

结果:它不会显示图像!不过,Safari 和其他浏览器可以正确显示它们...

【问题讨论】:

【参考方案1】:

我检查了在 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 的“基本”方案,并给出了 Apple 的假方案。所以……问题就在这里:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection

    [m_webView loadData:webdata
               MIMEType:@"text/html"
       textEncodingName:@"UTF-8"
                baseURL:nil]; /// WTF!

解决方案:只需在启动请求时将初始 URL 保存到某个 m_currentPageUrl,然后将其传递到它应该在的位置。 :)

【讨论】:

以上是关于UIWebView 不从协议相对 URL 加载图像的主要内容,如果未能解决你的问题,请参考以下文章

离子不从 url wp-json 和 ionic4 加载图像

在 UIWebView 中截取图片中的链接

angular 2组件无法从外部css皮肤加载相对背景图像url

SKAudioNode 不从 url 加载声音

在 uiwebview 中使用本地 html 从相对路径加载资源

Xcode 不从 CUIDatalog 加载图像