web-dev-qa-db-ja.com

オフライン表示用のUIWebView Webページキャッシュ

まず第一に、私はここですべての答えをチェックし、私がやりたいことは何もしていないことを確信しています。

  1. この質問では、回答のために、死んだプロジェクトであるASIHTTPRequestが与えられます。 ( iPhoneでWebページ全体(画像付き)をダウンロードするにはどうすればよいですか?
  2. この質問では、ユーザーはRNCachingURLProtocolを提案しましたが、これは本当に素晴らしいですが、アプリを完全に閉じた後(タスクバーで閉じたところ)にいくつかの問題がありました。その後、CSSや画像を取得できず、HTMLのみが読み込まれました。 ( Xcode/UIWEBVIEWでオフライン時に使用する単一のWebページをキャッシュする )。

他にいくつかの回答がありますが、どれも良いものではありません。私が探しているもののためのいくつかの単純な実装がなければなりません。

アプリを開くと、ウェブページが読み込まれます。そのウェブページを完全に保存したい。これで、ユーザーは終了したり、やりたいことをすべて実行したりできます(アンインストールしないでください)。何らかのインターネット接続がある限り(リーチャビリティクラスを使用して確認します)、Webページは正常に読み込まれ、保存されます。ユーザーがアプリを開いてインターネット接続がない場合、「最新のbla bla boaではない可能性があります」というメッセージを表示し、アプリケーションが最後にインターネットに接続したときに保存された完全な保存済みWebページを表示します。

完全なWebページを保存する(最新の)最良の方法は何ですか。 MKNetworkKitについて何かを見つけましたが、それを使用する方法がわかりません。任意の助けいただければ幸いです。

19
jovanjovanovic

何をどの程度キャッシュするかを制御できないため、標準のキャッシュでは十分ではないようです。これを解決する最も簡単な方法は、NSURLCacheをオーバーライドして独自のキャッシングメカニズムを作成することです。 http://nshipster.com/nsurlcache/ でそのことに関するいくつかのドキュメントを、そして http://github.com/evermeer/EVURLCache でサンプルを見つけることができますアプリのインストールに含めることができる、事前設定されたキャッシュを使用できます。

7
Edwin Vermeer
NSString *stringurl=[NSString stringWithFormat:@"http://www.google.com"];
NSURL *url=[NSURL URLWithString:stringurl];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:15.0];
[uiwebview loadRequest:theRequest];

URL読み込みシステムは、要求に対する応答の複合ディスク上およびメモリ内キャッシュを提供します。このキャッシュにより、アプリケーションはネットワーク接続への依存を減らし、パフォーマンスを向上させることができます。

6
Rahul K Rajan