1

我的问题是这个

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

<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

尝试将随机查询字符串附加到您的图像源。IE。

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 回答