2012-07-11 3 views
1

WebView가 있으며 WebView.setWebViewClient를 사용하여 사용자 지정 WebViewClient를 설정 한 후에 WebViewClient 메서드가 호출되지 않는 것 같습니다. 특히 onLoadResource 및 onReceivedError를 재정의하고 있습니다. 그러나 WebView.loadUrl()을 호출 한 후 이들 중 어느 것도 호출되지 않습니다. https://gist.github.com/9673b619e019038848a0내 WebView의 WebViewClient가 호출되지 않는 이유는 무엇입니까?

내가 놓친 게 무엇 :

여기에 문제의 코드는?

답변

0

올바른 로그 메시지를 찾고 기기에서 로깅을 올바르게 출력하고 있습니까? 나는 본질적으로 당신의 코드를 깨끗한 프로젝트에 복사했고 완벽하게 작동하는 것으로 보인다. 당신이 모든 것을 제대로 따르고있는 것처럼 보입니다.

콘텐츠보기로 webview를 사용하고 있는데, 이는 내가 보는 유일한 차이점입니다.

package com.testing.androidtest; 

import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.webkit.ConsoleMessage; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

@SuppressLint("SetJavaScriptEnabled") 
public class MainActivity extends Activity { 

    private static final String APP_TAG = "MYAPP"; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     final WebView webView = new WebView(getApplicationContext()); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.setWebChromeClient(new WebChromeClient() { 

      @Override 
      public boolean onConsoleMessage(ConsoleMessage consoleMessage) { 
       Log.d(APP_TAG, consoleMessage.message()); 
       return true; 
      } 
     }); 
     webView.setWebViewClient(new WebViewClient() { 
      @Override 
      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
       Log.e(APP_TAG, "Error in WebView: " + failingUrl + "; " + description); 
      } 

      @Override 
      public void onLoadResource(WebView view, String url) { 
       super.onLoadResource(view, url); 
       Log.d(APP_TAG, "loading resource: " + url); 
      } 
     }); 
     webView.loadUrl("http://google.com/"); 

     setContentView(webView); 
    } 

} 
: 여기에 참고로

내 테스트 활동