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の方法の詳細:
2.onReceivedSslError()
3. shouldOverrideKeyEvent()
4. onLoadResource();
5. onPageStarted()';
6. onPageFinished()
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);
}