3

ユーザーが初めてアプリを実行すると、すべての画像が読み込まれ、ライブラリ ディレクトリにあるキャッシュ フォルダーに保存されます: Library/Caches/imgcache/myApp/ready/

次の名前のファイルを考えてみましょう:

ユーザーがネットワークの外にいるとき、loadHTMLString を使用して html をレンダリングしています。html に以前に保存されたファイルの img src が含まれている場合、ユーザーはインターネットにアクセスできないため、インターネットからではなくキャッシュからロードされます。

今私の質問は、この問題をどのように処理できますか? これどうやってするの ?私を助けてください ..

例えば ​​:

html を含む文字列があり、

>"<div class="g-container story-body"> <div class="bodytext"> <div class="module "> <div >class="image img-w304"><img width="304" height="171" >src="http://wscdn.bbc.co.uk/worldservice/assets/images/2012/05/18/120518135959_facebook_304>x171_bbc_nocredit.jpg" alt=""/> <div class="module "> <div class="image img-w304"><img >width="304" height="171" >src="http://wscdn.bbc.co.uk/worldservice/assets/images/2012/05/18/120518145635_facebook_304>x171_bbc_nocredit.jpg" alt=""/><p class="caption"></p> </div> </div> <p></p> </div> </div> ><div class="g-container story-body"></div>"

これらの2つの画像をユーザードキュメントフォルダーにキャッシュしました。ユーザーがネットにアクセスできない場合、次のようなことをしたいと思います:

><div class="g-container story-body"> <div class="bodytext"> <div class="module "> <div >class="image img-w304"><img width="304" height="171" >src="**Library/Caches/imgcache/myApp/ready/**http://wscdn.bbc.co.uk/worldservice/assets/ima>ges/2012/05/18/120518135959_facebook_304x171_bbc_nocredit.jpg" alt=""/> <div class="module >"> <div class="image img-w304"><img width="304" height="171" >src="**Library/Caches/imgcache/myApp/ready/**http://wscdn.bbc.co.uk/worldservice/assets/ima>ges/2012/05/18/120518145635_facebook_304x171_bbc_nocredit.jpg" alt=""/><p class="caption">>>``</p> </div> </div> <p></p> </div> </div> <div class="g-container story-body"></div>
4

1 に答える 1

3

webview の- (void)loadHTMLString:(NSString *)stringbaseURL:(NSURL *)baseURLメソッドで画像キャッシュを使用できます。baseURL をローカル アプリ ライブラリ ディレクトリに指定する必要があります。以下のサンプルコード:

NSString * htmlContent = @"your html content";
NSString * path = [NSHomeDirectory() stringByAppendingPathComponent:@"Library"];
[_webView loadHTMLString:htmlContent baseURL:[NSURL fileURLWithPath:path]];

画像の場所が「YourApp/Library/imageCache/1.png」の場合、画像の URL は「./imageCache/1.png」のような関連する URL にする必要があります。

それが役に立てば幸い。

于 2012-08-29T04:32:58.880 に答える