UIWebView에서 페이지가 사용자가 "중지"되는 것이 아니라 페이지를로드하지 못한시기를 어떻게 알 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1243854

문제

웹 브라우징 기능을 제공하는 데 사용하는 응용 프로그램 내에 UIWebView가 있습니다.

툴바에 전화를 걸어 버튼이 있습니다

-(void)stopLoading;

Uiwebview에서. 이것의 문제는이 메소드가 웹보기로 전송 될 때 대의원이

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;

메시지. 이 호출과 함께 제공되는 오류는 다음과 같습니다. 작업을 완료 할 수 없습니다. (Nsurlerrordomain 오류 -999.)

또한 didfailload 메시지를 사용하여 페이지가 실제로로드되지 않았는지 알 수 있습니다.이 경우 HTML 형식의 메시지를 사용자에게 표시 하여이 실패를 전달합니다.

따라서 문제는 사용자가 정지 버튼을 누르면 중지되기 전에로드 된 페이지의 모든 부분을 표시하는 대신 오류 페이지가 표시된다는 것입니다.

NSERROR.H에 비교할 수있는 열렬한 오류 코드가 포함되어 있기를 바랐습니다. 그러나 로그에 나오는 오류 코드에 대한 내 관찰을 기반으로 내 직접 만들어야하는 것 같습니다. 그들이 미래에 변화 할 수 있기 때문에 이상적입니다 ...

모든 제안은 좋을 것입니다. 감사합니다.

도움이 되었습니까?

해결책 2

이것을 해결할 수있는 가장 좋은 방법은 WebView가 제공 한 오류 코드를 사용하여 열거를 만드는 것이 었습니다.

변화하는 것처럼 보이지는 않지만, 만약 그렇다면, 잘 um.

이제 내로드 실패 방법에서 오류 객체의 오류 코드를 열거와 비교하고 무슨 일이 있었는지 알 수 있습니다.

typedef enum {  
    BrowserErrorHostNotFound = -1003,
    BrowserErrorOperationNotCompleted = -999,
    BrowserErrorNoInternetConnection = -1009
} BrowserErrorCode;

다른 팁

해당 오류 코드는 Foundation.framework의 NSURLERROR.H에 정의됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top