2010-06-05 148 views
1

我正在使用UIWebView加載本地(即源代碼包)html頁面,ala Apple的Transweb示例。加載第一頁是微不足道的。但是,我添加了第二個HTML頁面並從第一個頁面鏈接到它。嘗試鏈接到第二個頁面似乎不起作用。在UIWebView中加載本地html頁面

任何人都知道如何使這項工作?

謝謝。

回答

1

我在通過路徑加載文件時無法訪問相對資源。嘗試將文件加載到內存中,作爲字符串或數據,以便您可以顯式傳入基本URL。

NSURL *bundleURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]]; 

然後

[yourWebView loadHTMLString:yourHTML baseURL:bundleURL]; 

[yourWebView loadData:yourHTML MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:bundleURL]; 

我用這個訪問圖像資源,但它也可能與相對鏈接幫助。

+0

也許我誤解了你。您上面編寫的代碼是我如何將頁面加載到Web視圖中(即「one.html」)。這已經很清楚了。 但是,當我然後點擊one.html中導致two.html的鏈接時,我想要正常工作。在one.html中加載鏈接的所有可能的目的地,以防其中一個鏈接被點擊看起來很笨拙。但也許這不是你說的。 – mwt 2010-06-06 04:54:35

+0

在我試圖解決這個問題的某個時候,我發現讓UIWebView通過調用帶有文件url的'loadRequest:'來選擇基礎URL是行不通的,所以我建議你避免這個調用。如果您不使用'loadRequest:',那麼也許您可以在'webView:shouldStartLoadWithRequest:navigationType:'中記錄請求並查看單擊鏈接時正在加載的內容。 – drawnonward 2010-06-07 02:35:38

0

這爲我工作:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"fileName" ofType:@"html"]]]]; 

webView是你的UIWebView的名稱和fileName是您的本地HTML頁面的名稱。