使用WebView的iPhone应用程序 - 将Web文件移动到子文件夹中

时间:2014-07-11 12:45:28

标签: ios xcode uiwebview

我继承了一个iphone应用程序,它基本上是一个包含所有Web文件(html / js / css)作为资源的webview。我想将文件从项目的根目录(现在的位置)移动到子文件夹(www)。

所以,我已创建了该文件夹并将所有文件移入其中。在XCode中,我从根目录中删除了它们(它们都是红色并标记为缺失)。然后我将新文件夹添加到项目中 - 一切看起来都不错。

然后我在项目设置中检查Build Phases内部,并且相同的文件在那里 - www文件夹中的所有.js文件显示为"编译源" (因为它们之前是从根目录开始),所有图像等都显示为"复制捆绑资源"就像以前一样。

因此,当我在模拟器上运行应用程序时(重置后),它看起来一切正常。如果我更改HTML,我也会看到更新。但是,如果我以任何方式更改js文件(在所有地方添加警报,删除所有内容,任何内容!),那么无论我做什么,我都看不到变化 - 它就像即使我再次重置模拟器,它也会从某个地方提供我的旧.js文件。

任何人都可以建议做什么?如果它有任何不同,我的网络视图代码如下:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [imageView setBackgroundColor:[UIColor whiteColor]];
    [self setWebView:webView];
    [webView setDelegate:self];
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

-(void)webViewDidFinishLoad:(UIWebView *)webView {
    imageView.hidden = YES;
}

2 个答案:

答案 0 :(得分:0)

一个解决方案(虽然不是很优雅)可能是用时间戳包装脚本以避免缓存。假设您的脚本位于head标签中:

<script>
    document.write('<script src="yourScript.js?' + new Date().getTime() + '><\/script>');
</script>

答案 1 :(得分:0)

似乎有这个工作。

将文件夹/文件添加到项目时,如果选择Create folder references for any added folders - 这不会将js文件添加为源,将其他文件添加为资源,而是将整个文件夹添加为资源(因此维护文件夹结构)。

然后,您只需要告诉您的webview有关index.html(或其他)的新位置

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"www]isDirectory:NO]]];

现在它正在工作:)