1

私の問題はこれです

アプリケーションのドキュメント フォルダーからローカル イメージを参照している UIWebView に html 文字列を読み込んでいます。

<html><body><img src="image.png"/></body></html>

それは問題なくロードされ、baseUrlなどに問題はありません。問題は、何かをして同じ名前の新しい画像を生成し、それを同じ Documents フォルダーに保存して、古いものを上書きするときです (古いものがある場合は削除し、新しいものを保存します)。

UIWebViewがまだ画面にロードされている状態で、[webview reload]を実行するか、手動でhtml文字列を再度ロードすると、上書きしたばかりの古い画像が表示されます。

私はすでにシミュレータフォルダをチェックインしました.image.pngは実際には古いものではなく新しい画像です。そして、webview のキャッシュを停止するために考えられるすべてのことを既に実行しました。

もちろん、新しい画像を「image2.png」などの別の名前で保存し、src="image2.png" で html 文字列をリロードすると、すべて正常に表示されます。

ここで何が欠けていますか?

4

2 に答える 2

3

画像ソースにランダムなクエリ文字列を追加してみてください。すなわち。

function ImageSource(src){
  return src + "?time=" + (new Date()).getTime().toString();
}
function ForceImageReloads(){
  var images = document.getElementsByTagName("img");
  for (var i=0;i<images.length;i++){
    var img = images[i];
    var s = img.getAttribute("src");
    img.src = ImageSource(s);
  }
}
ForceImageReloads();

またはそれに似たもの:)

于 2012-10-26T11:36:27.623 に答える
0

これは、シミュレーターに問題がある可能性があります。かつて似たようなことがありました。実際のデバイスでコードを実行してみてください。私にとって、シミュレーターは同じ名前のデータをリロードするのが面倒なようです。

于 2012-09-20T18:34:16.037 に答える