2013-10-15 30 views
1

摘要:我試圖做一些手動更改(增加字體,寬度等)在應用程序支持文件夾中存儲的css文件並保存它,當我加載相應的頁面鏈接到該CSS我發現它沒有反映我在CSS中的變化,它只會反映我的變化,當我殺了應用程序,並再次啓動它。UIwebview不加載從服務器下載的HTML文件中的更新更改

我上的應用,在那裏我感到在viewWillDisappear方法也在做這個

[[NSURLCache sharedURLCache] removeAllCachedResponses]; 
[self flushJavaScriptVariables]; 

[self.objwebview loadHTMLString:@"" baseURL:nil]; 

NSString *htmlfile = [HTML_SERVER_FILES stringByAppendingPathComponent:@"MyPage.html"]; 
NSURL *url = [NSURL fileURLWithPath:htmlfile]; 

NSURLRequest *thereq = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60]; 

[self.objwebview stringByEvaluatingJavaScriptFromString:@"document.open();document.close()"]; 

[self.objwebview loadRequest:thereq]; 

我在一個點上做這個

-(void)viewWillDisappear:(BOOL)animated 
{ 
[super viewWillDisappear:animated]; 
[self.objwebview loadHTMLString:@"" baseURL:nil]; 
[self.objwebview setDelegate:nil]; 
[self.objwebview stopLoading]; 
[self.objwebview removeFromSuperview]; 
self.objwebview = nil; 
} 

現在正在加載本地存儲的HTML文件到UIWebView的工作,如果有任何更改,我從服務器下載HTML文件並將它們保存在應用程序支持文件夾中,但在保存這些文件之前,我從保存這些更新文件的文件夾中刪除所有內容。

現在我被困在一個地方,當我從服務器下載新文件時,新文件的更改沒有反映出來。只有當我終止應用程序並重新啓動我的應用程序時纔會反映更改。

即使我在一個HTML文件中更改填充或圖像或更改一個控件的位置,然後從服務器獲取更新的文件也不會反映這些更改,除非直到您終止應用程序並重新啓動它。

我想跳過終止部分,以便我的應用程序直接從存儲的文件加載新的更改。

請指導我,並讓我知道需要做些什麼。

更新:我正在使用的代碼將文件保存在應用程序支持目錄中。

NSData *fileData = [NSData dataWithContentsOfURL:theFileURL]; 
      if (fileData.length!=0) 
      { 
       [fileData writeToFile:[HTML_SERVER_FILES stringByAppendingPathComponent:[dict valueForKey:@"FileName"]] atomically:YES]; 

       fileData = nil; 

      } 

回答

0

你需要更新你的HTML文件後執行乾淨項目。否則將不會更新。

+0

在Xcode中,我可以做到這一點,但如果你正在設備上運行應用程序呢?如何在實際設備上清除項目? 糾正我,如果我錯了 – user2538944

+0

您正在使用本地存儲的HTML。所以在更改文件後,您必須通過連接到xcode.right來更改設備中的應用程序?那時你可以執行清理 – manujmv

+0

我正在從服務器本身下載文件,所以沒有必要連接回Xcode。我打電話給服務器誰給了我更新的文件,我將它們保存在應用程序支持文件夾中,但在保存之前我清除應用程序支持文件夾中的內容,然後保存這些新文件。 – user2538944