我正在寫一個UIWebView的應用程序,它應該顯示我在應用程序資源文件夾中的各種HTML文件。在Xcode我的項目概況,這些HTML文件顯示如下:iPhone開發:從資源文件夾加載文件
dirA
|---> index.html
|---> a1.html
|---> a2.html
|---> my.css
|---> dirB
|---> b1.html
|---> b2.html
|---> dirC
|---> c1.html
|---> c2.html
其中添加到項目中這樣這些資源:
- 經過「複製項目到目的地組文件夾(如果需要)」 。
- 參考類型:默認。
- 文本編碼:Unicode(utf-8)。
- 以遞歸方式爲任何添加的文件夾創建組。
在我的HTML鏈接是相對的,這意味着它們看起來就像這樣:
<a href="a1.html">a1</a>
<a href="a2.html">a2</a>
<a href="dirB/b2.html">b2</a>
<a href="dirC/c1.html">c1</a>
爲了顯示的index.html時,應用程序啓動時,我使用下面的代碼:
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
這工作正常。只要所需的html文件直接位於dirA下,索引文件中的以下鏈接也可正常工作。如果後面的鏈接指向子目錄中的文件,則didFailLoadWithError
將捕獲該情況並報告所請求的文件不存在。
此外,
[webView loadHtmlString:myHtml];
不能成爲解決方案的一部分,因爲我需要前進和後退按鈕在我的網頁視圖工作。
所以問題是:我如何遵循一個相對鏈接到我的資源內的子目錄中的HTML文件?
我已經遍佈了stackoverflow和過去幾天試圖找出這一個,但我沒有遇到這個確切的問題的解決方案的其餘管。任何有識之士都會非常非常感謝!
編輯: Yoohoo!我想到了!什麼喜悅!以下是我所做的:
- 重新導入我的資源,選擇「爲所有添加的文件夾創建文件夾引用」而不是「爲所有添加的文件夾遞歸創建組」。
- 指定資源的根目錄,例如:
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"dirA"];
是的,謝謝。正如你可以看到我的編輯(原始問題),我自己在幾個小時的時間裏就發現了這一點。似乎沒有「我終於自己想出了」 - 位。好吧。我只是給你信貸:-) – thomax 2010-03-26 13:42:13
我想獲得相同的結果,但我已經添加了文件夾。無論如何教xcode來組織文件夾之後呢? – amok 2010-09-25 19:44:02