2013-09-05 124 views
4

我有一個PhoneGap應用程序,我需要在某些時候刪除HTML緩存,因爲我更新了我的應用程序中的圖像。在iOS上清除UIWebView緩存

我已經試過這樣:

[[NSURLCache sharedURLCache] removeAllCachedResponses]; 
[[NSURLCache sharedURLCache] setDiskCapacity:0]; 
[[NSURLCache sharedURLCache] setMemoryCapacity:0]; 

通過JavaScript的插件調用時,我做的:

location.reload(true) 

但我仍然看,這似乎是緩存相同的圖像。

是否有另一種方法呢?我可以告訴用戶退出應用程序並殺死它,然後重新啓動它。

謝謝!

+0

你能請告訴我們您正在使用的科爾多瓦版本? 當應用程序退出時,我們遇到了UIWEBVIEW清除緩存的問題。所以當我運行應用下次與WIFI關閉。沒有圖像出現。 [請參閱我們的查詢](http://stackoverflow.com/questions/19446317/ios-phonegap-application-ignoring-cache-headers-and-not-caching-images) – abksharma

+0

我認爲這是ios行爲來清理內存一旦關閉應用程序。 – arlg

回答

0

什麼,你可以嘗試在應用程序

0

,你可以有圖片的URL版本系統的第一個開始徹底清除你的應用程序,例如緩存目錄。正如我在這裏提到的。

http://www.abksharma.in/2013/10/caching-using-javascript-versioning.html

請求圖片包含有以下URL PARAM。

http://s.wordpress.org/screenshots/3.5/ss5-dfw.gif?1 
http://web-sniffer.net/ 
Above is truly cached image with below headers 

對於DATA,我們可以在下面使用。

How to Enable ajax request caching for semi dynamic data (ie JSON)?

0

你可以簡單地解決這個由url.Then之後添加時間戳可以確保你每次請求的URL是不同的。

就像這樣:http://www.demo.com/xxxx?t=timestamp

的JavaScript代碼就像這樣:

var url = 'xxxx/xxx?timestamp=' + Date.now(); 
0

這些都不幫我。

我擔心我不得不求助於生成唯一的文件名並在完成時進行清理。

這很好。

<img src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAeu 
... snip data .... 
YII="> 

How to display Base64 images in HTML?