2011-10-11 80 views
5

我有一個web項目中顯示的html文件資源的IOS項目。這些html文件有不同的部分,這些部分對應於我想要在web視圖中加載的片段(例如,index.html#section1,index.html#section2)。不幸的是,使用[NSURL fileURLWithPath:url]不適用於碎片。 #在url中轉換爲%23,並找不到該文件。如果我使用[NSURL URLWithString:url]方法,它可以工作,但此方法無法加載本地資源。如何使用帶有碎片的NSURL fileURLWithPath?

有沒有辦法讓webview加載片段的本地資源url?

+0

http://iphoneincubator.com/blog/data-management/how-to-read-a-file-from-你的應用程序捆綁 – Marios

+0

不,這沒什麼幫助。這似乎是不可能的... – Marius

回答

3

正如你已經注意到了,這似乎是不可能的文件URL,但你可以使用一種解決方法,如果你不介意的話:

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

這是可能的,thomax描述了正確的方式來做到這一點。 – Matjan

3

這不是很明顯蘋果打算如何在這種導航是觸發。可能有幾種方式來做到這一點,但這一個對我來說是訣竅:

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];