Ios UIWebView链接到本地文件,而不将baseURL设置为应用程序目录

Ios UIWebView链接到本地文件,而不将baseURL设置为应用程序目录,ios,uiwebview,Ios,Uiwebview,我在一个应用程序中有一个web视图,从服务器加载一个html片段,其中包括文本和图像。我将其包装在一个小html中,并将其放入一个web视图中,如下所示: NSString *cssPath = [[NSBundle mainBundle] pathForResource:@"style" ofType:@"css"]; NSString *cssLink = [NSString stringWithFormat:@"<link href='file://%@/' type='text/

我在一个应用程序中有一个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];
NSString*cssPath=[[NSBundle mainBundle]pathForResource:@“样式”类型:@“css”];
NSString*cssLink=[NSString stringWithFormat:@',cssPath];
NSString*html=[[NSString stringWithFormat:@“%@%@”,cssLink,htmlContent]retain];
[myWebView loadHTMLString:html baseURL:currentURL];
有没有办法修复上面的代码,这样本地样式表的链接就可以工作了

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

我也可以将样式表的内容直接包含到html中,但出于一些原因,我不希望这样做


谢谢。

什么是
当前URL
?它应该是
[[NSBundle mainBundle]bundleURL]
,例如

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

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

可能太晚了,安东尼。很抱歉对于走同一条路的其他勇敢英雄,这里有一个有效的解决方案:

NSString* bundlePath = [[[NSBundle mainBundle] bundleURL] absoluteString];

NSString* cssString = [NSString stringWithFormat:@"<html><head><base href='%@'><link rel='stylesheet' type='text/css' href='style.css'/></head><body>Hi Mom!</body></html>"
                      , bundlePath"];
NSString*bundlePath=[[NSBundle mainBundle]bundleURL]绝对字符串];
NSString*cssString=[NSString stringWithFormat:@“嗨,妈妈!”
,bundlePath“];

谢谢!我可以做到这一点,而且效果很好。但是,我使用的html来自不同的api,其中包含图像等的相对链接,因此baseURL不能是捆绑url。是否可以创建指向本地css文件的绝对链接?您是否尝试过
[[NSBundle mainBundle]URLForResource:@“style”和扩展名:@“css”]
,返回URL而不是路径?这看起来是朝着正确方向迈出的一大步。URL看起来是正确的(file://localhost/var/mobile/Applications/67670E71-B8F0-4C99-9FAC-BAF0D6941E87/Wikithing.app/style.css),但当我将css链接到html中时,它仍然没有加载。有什么想法吗?我会尝试检查两件事:css文件是否可读(即打开并读取文件的内容,可能使用UIWebView显示),以及
html
字符串的格式是否正确。两者似乎都起作用。我可以记录从本地url加载的css文件,如果我将该url替换为联机css文件的url,则效果很好。也许这是不可能的。我们应该将bundlePath放在哪里?很抱歉,添加了丢失的字符串标记。您是否找到了s这个问题的解决办法?