2012-06-11 21 views
2

我試圖使用UIWebView連接到一個wikiTravel頁面。這裏是我的代碼:UIWebView不斷嘗試加載,但沒有結果

NSURL *url = [NSURL URLWithString:@"http://wikitravel.org/en/Beijing"]; 

NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 

[wikiWebView loadRequest:requestObj]; 

如果我將北京改爲康沃爾,它的效果很好,並向我顯示所有信息。如果我將北京改爲蒙特利爾,它只會加載wikitravel徽標和兩個按鈕,但確實會調用webViewDidFinishLoad。但與北京它只是加載和加載,並沒有顯示任何東西。

我打印每當一個UIWebView方法被調用控制檯,這裏是輸出:

2012-06-11 15:11:50.904 ExtraFeatures3[893:307] WEB VIEW DID START LOAD. 
2012-06-11 15:11:57.607 ExtraFeatures3[893:307] WEB VIEW FAILED TO LOAD: Error Domain=NSURLErrorDomain Code=-999 "The operation couldn’t be completed. (NSURLErrorDomain error -999.)" UserInfo=0x19be10 {NSErrorFailingURLKey=http://wikitravel.org/en/Beijing, NSErrorFailingURLStringKey=http://wikitravel.org/en/Beijing} 
2012-06-11 15:11:57.619 ExtraFeatures3[893:307] WEB VIEW DID START LOAD. 
2012-06-11 15:11:59.523 ExtraFeatures3[893:307] WEB VIEW FAILED TO LOAD: Error Domain=NSURLErrorDomain Code=-999 "The operation couldn’t be completed. (NSURLErrorDomain error -999.)" UserInfo=0x1a3190 {NSErrorFailingURLKey=http://wikitravel.org/en/Beijing, NSErrorFailingURLStringKey=http://wikitravel.org/en/Beijing} 
2012-06-11 15:11:59.534 ExtraFeatures3[893:307] WEB VIEW DID START LOAD. 
2012-06-11 15:12:00.875 ExtraFeatures3[893:307] WEB VIEW FAILED TO LOAD: Error Domain=NSURLErrorDomain Code=-999 "The operation couldn’t be completed. (NSURLErrorDomain error -999.)" UserInfo=0x1a6e00 {NSErrorFailingURLKey=http://wikitravel.org/en/Beijing, NSErrorFailingURLStringKey=http://wikitravel.org/en/Beijing} 

它只是不斷去和去和去....我不知道是否與此。

編輯:我所有的搜索都使我對以下解決方法,我都試過,也沒有得到工作:

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 
{ 
    if([error code] == NSURLErrorCancelled) 
    { 
     return; 
    } 

}

任何幫助將不勝感激!

謝謝!

+1

我會說它在網站上的一個錯誤,他們正在適應移動瀏覽器的內容,並在導致無限重定向的地方犯了一個錯誤。用於UIWebView的用戶代理與移動Safari不同,因此拋出了其邏輯。如果我有時間,我會通過他們的源代碼,但這是我認爲可能發生的事情。 – Gruntcakes

回答

3

根據這個網站:https://discussions.apple.com/thread/1727260?start=0&tstart=0

這是解決方法:

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 
{ 
NSLog(@"Error %i", error.code); 
if (error.code == NSURLErrorCancelled) return; // this is Error -999 
// error handling for "real" errors here 
} 
+0

我忘了提及,我已經嘗試過這一點,它並沒有幫助。謝謝 – PaulG

+0

我一直試圖讓這個工作,但沒有成功。即使我在iOS Safari中啓動該網站,它也會崩潰。編輯:從來沒有這個評論。我能夠在Safari瀏覽器中加載它,但速度很慢 – mkral

+0

崩潰?當我直接在iOS Safari中鍵入URL時,它可以正常工作,但不顯示關於北京的任何信息。 – PaulG

1

,而不是試圖您的網址,先嚐試

NSURL *url = [NSURL URLWithString:@"http://www.google.com"];

你能加載?

+0

是的,它加載沒有問題 – PaulG

+0

北京,康沃爾和蒙特利爾是參數?傳遞給Url? – Krunal

+0

是的。如果你看看上面的問題,你可以用任何城市名稱代替北京,它應該可以工作。 – PaulG