2011-01-13 2 views
3

내 iPhone 응용 프로그램에서 webview에서 웹 페이지를 표시하고 있습니다.iPhone - UIWebView - 페이지가로드되기 전에 URL을 클릭하면 didFailLoadWithError 오류가 발생합니다.

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 
{ 
    UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Error loading the requested URL" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 
} 

을 나는 URL 및로드 반 페이지를 엽니 다 이제까지 내가 바로 웹 페이지에서 다른 링크를 클릭있을 때 다음과 같이 나는 대리자 방법을 구현했습니다. 그 당시에도이 위임 메서드가 호출되었습니다. 웹 페이지를 반으로로드하고 URL 링크를 클릭 할 때 델리게이트 메서드를 호출하지 못하게하려면 어떻게해야합니까?

또는 다른 해결책으로는 URL을 클릭 할 때 stopLoading을 호출 할 수 있습니다. 어떻게해야합니까?

답변

2

웹 페이지를 반으로로드하고 URL 링크를 클릭하면 위임 방법을 호출하지 못하게하려면 어떻게해야합니까?

실제로 메서드 호출을 중지 할 수는 없지만 error 개체의 속성을 확인하여 어떤 종류의 오류가 있는지 확인할 수 있습니다.

또는 다른 해결책으로는 URL을 클릭 할 때 stopLoading을 호출 할 수 있습니다. 어떻게해야합니까?

당신은 사용자가 탐색 행동의 어떤 종류를 소요 할 때마다 (형태 등 당신은 행동이 무엇인지 결정하기 위해 navigationType를 사용하여 제출 예를 들어,이 링크를 클릭)가 호출 될 webView:shouldStartLoadWithRequest:navigationType: 사용할 수 있습니다. stopLoading을 호출 할 수 있어야합니다 (webView는 여전히 webView:didFailWithError: 메서드를 호출 할 수 있지만 확실하지는 않습니다 ... 어떻게 처리 할 수 ​​있는지에 대한 첫 번째 부분 참조).

4

오류 코드 NSURLErrorCancelled은 URLLoadingSystem이 '로드를 중지했습니다'라는 메시지를 사용자에게 알립니다. 이것은 예를 들어 사용자가 페이지가 절반 밖에로드되지 않은 링크를 클릭 할 때 발생합니다 ... URLLoadingSystem이 중지하므로 필요하지 않습니다.

- (void) webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 
{ 
    // If the URLLoadingSystem cancelled the load don't show anything. 
    if ([error code] == NSURLErrorCancelled) 
    { 
     //...this is called when the load is cancelled... 
    } 
    else 
    { 
     //...handle the error and show the alert ... 
    } 
} 
관련 문제