2011-08-16 79 views
0

此代碼段:奇怪網頁視圖+ baseURL時行爲

NSString *content = @"<html><head></head><body bgcolor=#AAAAAA></body></html>"; 
[wv loadHTMLString:content baseURL:[NSURL URLWtihString:@""]; 

不與任何其他工作基本URL除了一個上面寫(甚至爲零)。這種行爲阻止我在我的webViews中使用本地數據。任何人都可以得到這方面的協助嗎? 萬一我設置任何其他基本URL,內容只是沒有被加載

+0

你能顯示任何其他網址,你正在嘗試? – sergio

+0

我試過了 'nil' 'NSString * path = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]; NSURL * baseURL = [NSURL fileURLWithPath:path isDirectory:YES];' 例如。以及更多來自我在互聯網上找到的不同例子 – Concuror

回答

2

除了建議我用我的代碼是什麼:

[webView loadHTMLString:[.... 
       baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]]; 

我不能做太多。使用[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]是不正確的,因爲這樣你會向上移動並在應用程序包之外,但是因爲你說你正在嘗試很多變體,所以我不確定會發生什麼。

如果您想嘗試排除baseURL發生的情況,請覆蓋webView:shouldStartLoadWithRequest:並查看您的網絡視圖嘗試打開的文件。

編輯:

,如果你需要訪問你的應用程序的庫文件夾,這是去(source

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); 
NSString *libraryDirectory = [paths objectAtIndex:0]; 
[webView loadHTMLString:[.... 
       baseURL:[NSURL fileURLWithPath:libraryDirectory]]; 

無論如何,從您的評論的方式:「他們以前下載的我應用程序「,你應該已經知道如何去那裏...無論如何,我再次建議檢查什麼文件,你試圖訪問webView:shouldStartLoadWithRequest: ...

+0

我喜歡用'webView:shouldStartLoadWithRequest:'進行破解! – Anton

+0

我試圖從捆綁中上移一層,因爲我的本地文件在庫文件夾中,而不是資源,因爲它們以前是由我的應用下載的。但我試過'[[NSBundle mainBundle]'bundlePath]。也只是爲了使清單完整@「http://www.google.com」以及。到目前爲止沒有運氣。 – Concuror

+0

讓我遺憾的是,它並沒有進入'webView:shouldStartLoadWithRequest:',但似乎直接登錄在'webViewDidFinishLoad:' – Concuror