2010-11-18 121 views
1

我有加載一個本地HTML文件,像這樣的的WebView本地HTML文件:負載當鏈接被點擊的WebView

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

我要的是點擊test1的本地HTML文件的鏈接,然後webView加載test2本地HTML文件。

我該怎麼做?

回答

1

像在一個普通的網頁。讓測試1中的鏈接指向test2。

+0

你能告訴我怎樣寫鏈接嗎? – StefanHanotin 2010-11-18 12:56:59

+0

我使用上面的答案得到它。 – StefanHanotin 2010-11-18 13:04:46

+0

如果我的回答對你有幫助,爲什麼這個標記被接受?您應該將解決問題的答案標記爲已接受。 – Jasarien 2010-11-18 13:07:47

6

而不是加載請求,使用- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL方法。

創建從本地HTML文件中像這樣的NSString

NSError *error = nil; 
NSString *html = [[NSString alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"test1" ofType:@"html"] encoding:NSUTF8StringEncoding error:&error]; 

然後將其加載到web視圖,就像這樣:

[webview loadHTMLString:html baseURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"test1" ofType:@"html"]]]; 
在HTML文件中

然後,當你鏈接到其他網頁,只需使用它們的文件名,如<a href="test2.html">Test 2</a>,它會在同一個webview中加載頁面而不會出現任何問題。

+0

你肯定有正確的答案加載本地html文件!感謝您的提示:)我會給你一個+1 – Unikorn 2010-11-19 06:41:29

+0

如果我使用你的代碼,我得到以下錯誤:「不兼容指針類型發送'NSString *'到類型'NSURL *'的參數'」 最新錯誤? – MJB 2012-04-30 22:56:33

+0

我的不好,我從內存中鍵入了代碼,並且忘記了baseURL帶了一個NSURL或者忘記了那個pathForRes沒有返回一個NSURL。其中之一。應該現在就好了。 – Jasarien 2012-05-01 11:06:53

1
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [webview loadHTMLString:[self htmlString] baseURL:[self baseURL]]; 
} 
- (NSURL *)baseURL{ 
    NSString *htmlpath = [[NSBundle mainBundle] pathForResource:@"webpage" ofType:@"html"]; 
    return [[[NSURL alloc] initFileURLWithPath:htmlpath] autorelease]; 
} 

- (NSString *)htmlString{ 
    NSError *error = nil; 
    NSString *html = [[[NSString alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"webpage" ofType:@"html"] 
                encoding:NSUTF8StringEncoding 
                 error:&error] autorelease]; 
    return html; 
}