我有一些在UIWebView中使用的网页,这些网页目前引用具有相对路径和绝对路径的资源,如下所示:
<link rel="stylesheet" type="text/css" href="/css/path/mycss.css"/>
<img src="myimage.png" />
HTML文件本身位于路径“/page/path/page.html”,myimage.png位于同一目录中。这些相同的页面也用于直接在浏览器中呈现,理想情况下我不想改变路径。在iPad上,网站内容会动态加载到Documents目录中以供离线查看。问题是似乎没有办法让UIWebView处理绝对路径的分辨率。我正在使用以下内容加载内容:
NSData *data = [NSData dataWithContentsOfFile:fullPath];
[self loadData:data MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:baseURL];
如果我将baseURL指向“/ page / path”目录,UIWebView将正确找到myimage.png,但找不到mycss.css。我也尝试将baseURL指向Documents目录,但是这无法解析任何一种资源。事实上,我根本无法让UIWebView解析任何绝对路径。
有没有人能够获得使用UIWebView的绝对路径?
答案 0 :(得分:0)
你是否尝试过使用类似的东西(见下文)来获取CSS的路径?
<link rel="stylesheet" type="text/css" href="../../css/path/mycss.css"/>
<img src="myimage.png" />
答案 1 :(得分:0)
为什么要在html文件中使用一些绝对路径引用?
我认为这不是一个好主意,因为您无法了解未来的用户应用程序安装路径。
例如,我的嵌入式网页位于
file://localhost/var/mobile/Applications/0E8A7BA5-8DB7-4F88-AC69-0E48F9182DD2/MyApp.app/homepage/index.html
每次删除应用程序时,0E8A7BA5-8DB7-4F88-AC69-0E48F9182DD2部件都会更改!
我认为好方法是
使用:
NSString * urlString = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"homepage"];
NSURL * url = [NSURL fileURLWithPath:urlString isDirectory:NO];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:(NSTimeInterval)10.0 ];