我正在从本地Jetty 9服务器下载一个看起来像这样的html页面。
<h1>Hello</h1>
<img src="tiles/tile00.jpg">
<img src="tiles/tile01.jpg">
当我在Chrome中导航到该页面时,我的服务器会收到
的请求/
/tiles/tile00.jpg
/tiles/tile01.jpg
/favicon.ico
,页面会显示Chrome中的图片。
但是,当我使用下面的Swift代码导航到该页面时,我仅收到
的请求/
并且文本呈现,但图像仅呈现为[?]
图标。
@IBAction func displayWebPage(sender: UIButton) {
let h2Url = NSURL(string: "https://localhost:8443")!
let downloadDelegate = Deleg(view: self)
let ses = NSURLSession(
configuration: NSURLSessionConfiguration.defaultSessionConfiguration(),
delegate: downloadDelegate,
delegateQueue: nil
)
ses.downloadTaskWithURL(myUrl).resume()
}
func completed(location: NSURL) {
print("downloaded")
var htmlString = "NON, MERCÍ"
do {
htmlString = try String.init(
contentsOfURL: location,
encoding: NSUTF8StringEncoding
)
} catch {
print("ERRORED OUT")
fatalError()
}
print("contents: \(htmlString)")
self.webView.loadHTMLString(htmlString, baseURL: nil)
}
class Deleg: NSObject, NSURLSessionDelegate, NSURLSessionDownloadDelegate {
var view: ViewController
init(view: ViewController) {
self.view = view
}
func URLSession(
session: NSURLSession,
downloadTask: NSURLSessionDownloadTask,
didFinishDownloadingToURL location: NSURL
) {
self.view.completed(location)
}
}
有没有办法说服NSURLSession
下载链接到的html页面中的资产?
一种解决方案是使用UIWebView
下载链接的资产,但之后我将无法使用自签名证书。