我几乎尝试了将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')
我还确保当使用其他方法运行应用程序时,该文件存在于捆绑包中,但仍然没有运气。有人看到我的代码有什么问题???
答案 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
不是从文件中检索的,而是在内存中。