2016-08-24 6 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を使用してヘッダーを確認します。

関連する問題