UIwebView 未从外部站点加载图像 url

UIwebView not loading images from external site url

首先,这是 Swift 3。 我正在创建一个只为网站提供服务的容器应用程序。

问题是一切恢复正常并且工作正常,但图像不显示。调试时,问题似乎是 webview 不接受来自 asp 应用程序站点的图像,该站点使用相对路径访问应用程序内的 .net api 端点。该图像带有以下标签:

<img src="api/Answers/Image/1006" class="panel-image" alt="">

所有其他功能和数据恢复正常。该网站在包括 safari 在内的所有标准网络浏览器上都能正常运行。关于如何解决这个问题的任何想法。

你会认为 webview 会理解如何处理 img 标签的相对 url...添加协议和路径主机到 api 应该可以解决你的问题。

如果您正在注入 HTML,请尝试以下方法:

'<img src='window.location.protocol + '//' + window.location.host + '"/api/Answers/Image/1006" class="panel-image" alt="">'

或者...如果您通过 id 进行设置:

var img = document.getElementById("ImageId");
img.src = window.location.protocol + '//' + window.location.host + '/api/Answers/Image/1006';

Allen 的回答对设置源的另一种性质很有洞察力,但我发现该站点的后端开发人员不小心将图像 api 设置为需要身份验证。奇怪的是,此身份验证不会在 ipad 应用程序以外的任何设备上触发。甚至浏览器也没有请求身份验证。删除图像上的身份验证 api 解决了问题。