2013-07-05 3 views
1

오류가 발생하면 자산의 로컬 HTML을 표시하고 싶습니다. 그러나 자산의 페이지가 표시되기 전에 onReceivedError 메서드를 재정의하더라도 초 동안 오류 페이지가 깜박입니다. 이 문제에 대한 수정 프로그램이나 해킹이 아직 있습니까? 내가 onPageStarted 이벤트에서 인터넷 연결이 있는지에 대한 확인하여이 문제를 우회 할 수 있었다android webview에서 오류 페이지가 표시되지 않도록 방지

@Override 
    public void onReceivedError (WebView view, int errorCode, String description, String failingUrl) 
    { 
     Log.i("onReceivedError", "onReceivedError: " + failingUrl + " errorCode: " + errorCode); 
     super.onReceivedError(view, errorCode, description, failingUrl); 
     view.stopLoading(); 
     loadFromAsset(view, failingUrl); 
    } 
+0

어떤 점이 염두에 있습니까? 'onReceivedError'는 HTTP 응답 상태 코드를 처리합니다. 문서에서 :'호스트 응용 프로그램에 오류보고. ... 기본 사용법 : .. 자바 스크립트를 사용할 수 없으며 웹 페이지 오류가 무시됩니다. –

+0

기본 Android "페이지를 찾을 수 없음"오류를 의미합니다. 인터넷에 연결되어 있지 않으면 오류 페이지 대신에 자산 페이지를 표시하고 싶습니다. – Kuba

+0

여기에 관한 내용은 다음과 같습니다. http://code.google.com/p/android/issues/detail?id=968 –

답변

0

지금은 우리가 지금까지 테스트 한 모든 장치에서 작동하는 것 같군 :

여기 내 코드입니다. 사용자 정의 html 오류 페이지를 사용하고 있습니다.

mWebView.setWebViewClient(new WebViewClient() { 

     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      if(!NetworkConnection.isNetworkAvailable(getActivity()) && !url.equals("file:///android_asset/error_page.html")){ 
       view.loadUrl("file:///android_asset/error_page.html"); 
      } 
      super.onPageStarted(view, url, favicon); 
     } 

     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
      mWebView.loadUrl("file:///android_asset/error_page.html"); 
      super.onReceivedError(view,errorCode,description,failingUrl); 
     } 

    }); 
관련 문제