귀하가 요청 응답을 받기 위해 NSURLCache
을 확인 중이라고 생각합니다. 그러나 때로는 페이지를 표시 할 수는 있지만 캐시하지는 못합니다. 실제로 서버는 다음과 같이 응답 할 수 있습니다.
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
"내 응답을 캐시에 저장하면 안됩니다."라고 말합니다. 좋은 시민으로서, IOS는하지 않습니다 :). 따라서 우리는 서버 응답을 되돌리기 위해 다른 방법을 사용해야합니다. 최선의 해결책은 NSURLSession
을 사용하여 콘텐츠를 다운로드하고 웹뷰에 전달하는 것입니다. 요청이 이루어지면 완료 핸들러가 응답에 액세스 할 수 있습니다. 여기에 당신이 할 수있는 일의 예입니다
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()
}
는 그리고이 같은 메서드를 호출 :
이
webView.loadRequest(NSURLRequest(URL: NSURL(string: "https://apple.com")!))
당신의 URL은 : 당신이 전에이 일을 한 장소에서
을 로드 된 수단이 보이지 않습니까? –
@ Anbu.Karthik 미안 해요. 당신을 이해하지 못했습니다. 가시적 인 의미가 무엇입니까? –
항상 발생합니까? 또는 일부 URL에서만? –