AndroidのWebViewClientとWebChromClientの2つのクラスの違い


WebViewClientクラスとWebChromClientの2つのクラスはandroid開発の過程で、主にWebViewというコンポーネントを使用する際に使用される可能性があります.では、この2つのクラスにはいったいどんな違いがあるのでしょうか.
WebView Clientというクラスは、主にWebViewが様々な通知、要求時間を処理するのに役立ちます.たとえば、次のようになります.
onLoadResource
onPageStart
onPageFinish
onReceiveError
onReceivedHttpAuthRequest
WebChromeClientは主にWebViewがJavaScriptのダイアログボックス、ウェブサイトの画像、ウェブサイトのtitle、ロードの進捗などを処理することを支援します.
onCloseWindow(WebViewを閉じる)
onCreateWindow()
onJsAlert(WebView上のalertは無効です.WebChromeClient処理ポップアップをカスタマイズする必要があります)
onJsConfirm
onProgressChanged
onReceivedIcon
onReceivedTitle
彼らにはいろいろな違いがあるように見えますが、実際に使うと、あなたのWebViewがhtmlのページを処理するのに使われているだけで、WebViewClientだけでいいので、JSや進捗バーなど、より豊富な処理効果が必要な場合はWebChromeClientを使います.
通常、WebViewを使用する場合は、次の文を使用する必要があります.
WebView webView;
webView =(WebView) findViewById(R.id.webview);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
これであなたのWebViewは理論的にほとんど選択できますよ実現の特色は、もちろん、もっと素晴らしい内容は自分で追加する必要があります.
WebViewClientの方法の詳細:
public boolean shouldOverrideUrlLoading(WebView view,String url){
   return true;
}
//              ,       true                 webView   ,        

2.onReceivedSslError()
public void onReceivedSslError(WebView view,SslErrorHandler handler,android.net.http.SslError error){
     handler.proceed();
}
//        webView  https  

3. shouldOverrideKeyEvent()
public boolean shouldOverrideKeyEvent(WebView view,KeyEvent event){
   return super.shouldOverrideKeyEvent(view,event);
}
//                    

4. onLoadResource();
public void onLoadResource(WebView view, String url){
    if(DEBUG){
          Log.d(TAG , "onLoadResource");
     }
     super.onLoadResource(view, url);
}
 //            ,     (    )         

5. onPageStarted()';
public void onPageStarted(WebView view, String url, Bitmap favicon){
   if(DEBUG){
         Log.d(TAG,"onPageStarted");
    }
     if(url.endsWith(".apk")){
           download(url);  //    
      }
      super.onPageStarted(view, url, favicon);
}
  //          

6. onPageFinished()
public void onPageFinished(WebView view,String url){
     if(DEBUG){
          Log.i(TAG,"onPageFinished");
      }
      super.onPageFinished(view, url);
}