2016-08-24 3 views
0

오프라인에서도 사용할 수있는 웹 사이트가 있습니다. 내가 UIWebView를 사용하는 응용 프로그램을 만들었으며 내가 인터넷 접속 내 응용 프로그램을 처음 시작하면 내 UIWebView 다음 코드UIWebView에서 캐싱이 작동하지 않습니다.

[self setRequestObj:[NSURLRequest requestWithURL:loadUrl cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]]; 

으로이 사이트를 캐시해야한다고 말했다 내 console

2016-08-24 15:37:01.713 BrowserApp[1991:345138] applicationDidBecomeActive! 
2016-08-24 15:37:01.955 BrowserApp[1991:345138] NSURLRequestUseProtocolCachePolicy 
2016-08-24 15:37:22.003 BrowserApp[1991:345138] applicationDidEnterBackground! 
2016-08-24 15:37:22.559 BrowserApp[1991:345138] applicationWillEnterForeground! 
2016-08-24 15:37:23.075 BrowserApp[1991:345138] applicationDidBecomeActive! 
2016-08-24 15:37:37.069 BrowserApp[1991:345138] applicationDidEnterBackground! 
2016-08-24 15:37:37.073 BrowserApp[1991:345138] applicationWillTerminate! 

기록 모든 메소드가 AppDelegate.m 파일에서 호출되는 것을 볼 수 있습니다. 내 전화를 인터넷에서 끊고 내 앱을 다시 시작합니다. 내 console처럼 배경에 없었습니다. 아무 일도 일어나지 않습니다. 나는 백인 웹 사이트 만 얻는다.

cache으로 설정 했는데도 website이 내 화면에 표시되지 않는 이유는 무엇입니까?

답변

0

로드 한 페이지에 만료일이 있습니다 (즉시 만료되도록 설정할 수 있음). NSURLRequestReturnCacheDataElseLoad으로 설정 한 cahce 정책을 사용해보십시오 (단, 이 아니기 때문에 장기적으로 좋지 않을 수도 있음) 다시로드).

또는 (아마도) 웹 사이트의 응답 헤더에 캐시 제어 헤더가 포함될 수 있습니다. 어떤 내용을 말하는지에 관계없이이 페이지는 NSURLRequest에 캐싱하지 않아야한다고 계속 말할 수 있습니다.

조사하려면 응답을 수신 한 코드를 중단 점을 설정하거나 코드에 기록하십시오. NSURLResponseNSHTTPURLResponse으로 전송 한 다음 allHeaderFields을 사용하여 헤더를 확인합니다.

관련 문제