概要 :アプリケーション サポート フォルダーに保存されている css ファイルに手動で変更 (フォント、幅などを増やす) を加えて保存しようとしましたが、その css へのリンクがある対応するページを読み込んでいるときに、そうでないことがわかりました私の変更をCSSに反映し、アプリを強制終了して再度起動したときにのみ変更が反映されます。
これを行うことで、ローカルに保存されたHTMLファイルをUIwebViewにロードするアプリに取り組んでいます
[[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];
また、viewWillDisappearメソッドで私はこれをやっています
-(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 ファイルをダウンロードしてアプリケーション サポート フォルダーに保存しますが、それらのファイルを保存する前に、これらの更新されたファイルを保存しているフォルダーからすべてのコンテンツを削除します。
サーバーから新しいファイルをダウンロードしたときに、新しいファイルからの変更が反映されない場所で立ち往生しています。変更は、アプリを終了してアプリを再起動したときにのみ反映されます。
1 つの HTML ファイルのパディングまたはイメージを変更したり、1 つのコントロールの場所を変更したりしても、サーバーから更新されたファイルを取得しても、アプリケーションを強制終了して再起動しない限り、それらの変更は反映されません。
私のアプリが保存されたファイルから新しい変更を直接ロードするように、終了部分をスキップしたいと思います。
それについて私を導き、同じために何をする必要があるか教えてください。
更新: アプリケーション サポート ディレクトリにファイルを保存するために使用しているコード。
NSData *fileData = [NSData dataWithContentsOfURL:theFileURL];
if (fileData.length!=0)
{
[fileData writeToFile:[HTML_SERVER_FILES stringByAppendingPathComponent:[dict valueForKey:@"FileName"]] atomically:YES];
fileData = nil;
}