Also, ich denke, das ist, weil Sie NSURLCache
überprüfen, um Ihre Anfrage Antwort zu bekommen. Aber manchmal kann Ihre Seite zwar angezeigt, aber nicht zwischengespeichert werden. In der Tat kann der Server etwas in der Art antworten:
Es sagt: "Sie sollten meine Antwort absolut nicht zwischenspeichern". Als ein guter Bürger, iOS nicht :). Also müssen wir einen anderen Weg wählen, um die Serverantwort zurückzubekommen. Ich denke, die beste Lösung ist, NSURLSession
zu verwenden, um Ihre Anfrage zu stellen, den Inhalt herunterzuladen und es zu Ihrem Webview weiterzuleiten. Wenn die Anfrage gemacht wird, können Sie auf die Antwort, den Beendigungshandler, zugreifen. Hier ist ein Beispiel dafür, was Sie tun können:
func loadURL(url: NSURL!) {
let config = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: config)
let muableRequest = NSMutableURLRequest(URL: url)
muableRequest.setValue("WhateverYouWant", forHTTPHeaderField: "x-YourHeaderField")
let task = session.dataTaskWithRequest(muableRequest) { (data, response, error) in
guard error == nil else {
print("We have an error :(\(error)")
// Here, you have to handle the error ...
return
}
if let response = response {
var mimeType = ""
if response.MIMEType != nil {
mimeType = response.MIMEType!
}
var encoding = ""
if response.textEncodingName != nil {
encoding = response.textEncodingName!
}
if let httpResponse = response as? NSHTTPURLResponse {
print("HTTP Status code is \(httpResponse.statusCode)")
}
self.webView.loadData(data!, MIMEType: mimeType, textEncodingName: encoding, baseURL: url)
}
}
task.resume()
}
Und Sie rufen diese Methode wie folgt aus:
loadURL(NSURL(string: "https://apple.com")!)
An der Stelle, Sie taten dies vor:
webView.loadRequest(NSURLRequest(URL: NSURL(string: "https://apple.com")!))
Ihre URL ist geladen bedeutet, sichtbar oder nicht –
@ Anbu.Karthik Es tut mir leid, ich habe dich nicht verstanden, was meinst du mit sichtbar oder nicht? –
Passiert es immer? Oder nur auf einer URL? –