如何将NSURL fileURLWithPath与片段一起使用?

时间:2011-10-11 11:17:31

标签: iphone ios uiwebview nsurl

我有一个IOS项目,其中包含webview中显示的html文件资源。这些html文件有不同的部分对应于片段(例如,index.html#section1,index.html#section2),我想在webview中加载它们。不幸的是,使用[NSURL fileURLWithPath:url]不能使用片段。 #在网址中转换为%23,找不到该文件。如果我使用[NSURL URLWithString:url]方法,它可以工作,但此方法无法加载本地资源。

有没有办法让webview使用片段加载本地资源网址?

2 个答案:

答案 0 :(得分:3)

正如您所注意到的,对于文件网址来说这似乎是不可能的,但如果您不介意,可以使用解决方法:

[webView stringByEvaluatingJavaScriptFromString:@"window.location.hash = '#section2';"];

答案 1 :(得分:3)

Apple并不打算如何触发此类导航。可能有几种方法可以做到,但这个方法对我有用:

NSURL *url = [NSURL fileURLWithPath:@"/full/path/to/index.html"];
NSString *fragment = @"#section1";
url = [NSURL URLWithString:fragment relativeToURL:url];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];