【问题标题】:UIwebview not loading updated changes in HTML files downloaded from serverUIwebview 未加载从服务器下载的 HTML 文件中的更新更改
【发布时间】:2013-10-15 11:49:26
【问题描述】:

总结:我尝试在存储在应用程序支持文件夹中的 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 文件并将它们保存在应用程序支持文件夹中,但在保存这些文件之前,我会从保存这些更新文件的文件夹中删除所有内容.

现在我被困在一个地方,当我从服务器下载新文件时,新文件的更改不会反映。这些更改仅在我终止应用程序并重新启动我的应用程序时才会反映出来。

即使我更改了一个 HTML 文件中的填充或图像或更改了一个控件的位置,那么在从服务器获取更新的文件时,这些更改也不会反映,除非并且直到您终止应用程序并重新启动它。

我想跳过终止部分,以便我的应用直接从存储的文件中加载新的更改。

请指导我,并让我知道为此需要做什么。

更新:我用来将文件保存在应用程序支持目录中的代码。

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

                fileData = nil;

            }

【问题讨论】:

    标签: ios objective-c uiwebview nsurlrequest


    【解决方案1】:

    您需要在更新 HTML 文件后执行clean您的项目。否则不会更新。

    【讨论】:

    • 在 Xcode 中我可以做到这一点,但如果你在设备上运行应用程序怎么办?您如何在实际设备上清除项目?如果我错了,请纠正我
    • 您正在使用本地存储的 HTML。因此,在文件更改后,您必须通过连接到 xcode.right 来更改设备中的应用程序?那时你可以进行清洁
    • 我正在从服务器本身下载文件,因此连接回 Xcode 毫无意义。我打电话给给我更新文件的服务器,并将它们保存在应用程序支持文件夹中,但在保存之前,我从应用程序支持文件夹中清除内容,然后保存这些新文件。
    • 请向我展示您用于将文件保存在应用程序支持文件夹中的代码
    • 我已根据您的要求更新了我的问题,请看一下
    猜你喜欢
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多