UIWebView链接到本地​​文件,而无需将baseURL设置为app目录

时间:2011-11-05 18:44:26

标签: ios uiwebview

我在一个应用程序中有一个Web视图,从服务器加载包含文本和图像的html代码段。我将它包装在一个小的html中并将其放入这样的Web视图中:

NSString *cssPath = [[NSBundle mainBundle] pathForResource:@"style" ofType:@"css"];

NSString *cssLink = [NSString stringWithFormat:@"<link href='file://%@/' type='text/css' rel='stylesheet'/>", cssPath];

NSString *html = [[NSString stringWithFormat:@"<html><head><title></title><meta charset='UTF-8' />%@</head><body>%@</body></html>", cssLink, htmlContent] retain];

[myWebView loadHTMLString:html baseURL:currentURL];

有没有办法修复上面的代码,以便链接到本地​​样式表?

如果我将基本网址更改为本地应用程序资源文件,我可以毫无问题地加载样式表,但这会破坏从服务器加载的html中的图像链接。

我还可以将样式表的内容直接包含在html中,但是出于多种原因不愿意这样做。

感谢。

1 个答案:

答案 0 :(得分:2)

什么是currentURL?它应该是[[NSBundle mainBundle] bundleURL],例如

[webview loadHTMLString:html baseURL:[[NSBundle mainBundle] bundleURL]];

我相信cssPath可以只是文件名,而不是绝对路径。