2012-07-17 14 views
6

私はアプリケーションバンドルにいくつかの埋め込みhtmlを持っています。私はそれを読み込むためにloadHtmlStringを使用しています。同時に、私のドキュメントフォルダ内にいくつかのイメージファイルがあります。私は自分のドキュメントフォルダ内のimgとhtmlを置き換えたいと思います。例えば、ここで私が持っているサンプルのHTMLは次のとおりです。私のUIWebViewのloadHtmlStringのキャッシュをクリアするには?

 <div id="image"> 
      <a href="image"> 
       <img src="@image" class="center">    
      </a> 
     </div> 

私はマイドキュメント内のファイルパスに@imageを交換するには、次のコードを使用しています:

NSString* imgFile = [NSString stringWithFormat:@"file:///%@/%@", 
         [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Images"],@"myimage.png"]; 
    text = [text stringByReplacingOccurrencesOfString:@"@image" withString:imgFile]; 

    NSURL* baseUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]]; 
    [self.webView loadHTMLString:text baseURL:baseUrl];  

(テキストはhtmlです私のHTMLファイルのテキスト)。

このコードが初めて呼び出されたときに動作します。しかし、たとえば、myimage.pngを変更してコードをもう一度呼び出すと、変更前の画像が表示されます。 (私は自分の文書フォルダ内のファイルをチェックしていますが、すでに正しく修正されています)。

キャッシュの原因と思われます。誰も助言することはできますか?

おかげ

注:これは、キャッシュによって引き起こされる

。私は、画像の新しいコピーをロードするためのUIWebViewを強制するために、次の方法を使用して問題を解決:

NSString* imgFile = [NSString stringWithFormat:@"file:///%@/%@?t=%d", 
         [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Images"],@"myimage.png",time(NULL)]; 
    text = [text stringByReplacingOccurrencesOfString:@"@image" withString:imgFile]; 

答えて

7

私は私のURLで時間を追加することで問題を解決しました。したがって、イメージはキャッシュされません。私の質問を参照してください。問題は閉じられると考えられています。

+0

私は同じ問題があります!しかし、私の場合はイメージ名を変更できません。私は私のウェブビューを清掃しなければならない...任意のアイデア? – iWheelBuy

+0

私の解決策は、画像をキャッシュを使わずに取得するように画像のURLを変更することです。 イメージURLを変更できないのはなぜですか?とにかく、イメージをロードする必要がありますか? –

+0

私は画像のURLを変更しました!今はうまく動作します。 URLを変更するのは難しいことでした。プロジェクトは非常に大きく、私のプロジェクトではありません。とにかくあなたの解決策は唯一のウォーキングの1つであることが判明しました。どうも! – iWheelBuy

関連する問題