【问题标题】:How do I use NSURL fileURLWithPath with a fragment?如何将 NSURL fileURLWithPath 与片段一起使用?
【发布时间】:2011-12-05 05:26:45
【问题描述】:
我有一个 IOS 项目,其中包含在 web 视图中显示的 html 文件资源。这些 html 文件具有对应于片段的不同部分(例如,index.html#section1、index.html#section2),我想将它们加载到 web 视图中。不幸的是,使用 [NSURL fileURLWithPath:url] 不适用于片段。 url中的#转换为%23,找不到文件。如果我使用[NSURL URLWithString:url] 方法,它可以工作,但是这种方法无法加载本地资源。
有没有办法让 webview 用片段加载本地资源 url?
【问题讨论】:
标签:
iphone
ios
uiwebview
nsurl
【解决方案1】:
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];
【解决方案2】:
正如您所注意到的,这对于文件 URL 来说似乎是不可能的,但如果您不介意,您可以使用一种解决方法:
[webView stringByEvaluatingJavaScriptFromString:@"window.location.hash = '#section2';"];