UIWebView加载被覆盖但不刷新的本地图像

时间:2012-09-20 18:30:58

标签: iphone html ios image uiwebview

我的问题是这个

我正在将一个html字符串加载到UIWebView中,我在其中引用了我的应用程序的Documents文件夹中的本地图像。

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

它加载得很好,没有baseUrl或其他任何问题。问题是当我做一些东西并生成一个具有相同名称的新图像,并将其保存在相同的Documents文件夹中,覆盖旧文件夹(如果它存在则删除旧文件并保存新文件夹)。

现在,UIWebView仍然在屏幕上加载,如果我进行[webview重新加载]或再次手动加载html字符串,我仍然会得到旧图像,即我刚刚覆盖的图像。

我已经在模拟器文件夹中检查过,image.png确实有新图像,而不是旧图像。我已经做了一切可以想象的事情来阻止webview缓存。

当然,如果我用不同的名字保存新图像,比如说“image2.png”,然后用src =“image2.png”重新加载html字符串,那么一切都显示确定。

我在这里缺少什么?

2 个答案:

答案 0 :(得分: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();

或类似的东西:)

答案 1 :(得分:0)

这可能是模拟器的一个问题。我曾经有类似的东西。尝试在真实设备上运行代码。对我来说,模拟器似乎懒得重新加载具有相同名称的数据。