UIWebView本地资源主包html文件

时间:2013-06-12 01:51:23

标签: objective-c uiwebview nsbundle mainbundle

我几乎尝试了将html文件加载到UIWebView中的所有方法,该UIWebView在主包中有图像和资源。网页总是加载,但我永远无法显示图像。

NSString *html = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSString *htmldata = [NSString stringWithContentsOfFile:html encoding:NSUTF8StringEncoding error:nil];
NSString *path = [[NSBundle mainBundle] bundlePath];

[webView loadHTMLString:htmldata baseURL:[NSURL URLWithString:path]];

HTML代码有css:

background: url('image.png')

我还确保当使用其他方法运行应用程序时,该文件存在于捆绑包中,但仍然没有运气。有人看到我的代码有什么问题???

2 个答案:

答案 0 :(得分:2)

您可以让Web视图执行从捆绑文件加载HTML的工作,而不是直接使用loadHTMLString加载HTML。这样它就应该知道HTML来自哪里来解析相关链接。

例如:

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]];
[webview loadRequest:[NSURLRequest requestWithURL:url]];

我没有测试过上述内容,您可能需要inDirectory方法的pathForResource子句。祝你好运!

答案 1 :(得分:1)

这是一篇旧帖子,但我认为让这项工作的方法是更改​​以下行:

[webView loadHTMLString:htmldata baseURL:[NSURL URLWithString:path]];

为:

[webView loadHTMLString:htmldata baseURL:[NSURL fileURLWithPath:path]];

评论中的方法和jimbojw的答案也有效,但在我的情况下htmldata不是从文件中检索的,而是在内存中。