あなたは確かに両方を使うことができます、彼らはただ異なる機能を持っています。独自のカスタムWebViewClientを設定すると、onPageFinished、shouldOverrideUrlLoadingなどを処理できます。WebChromeClientを使用すると、Javascriptのalert()およびその他の関数を処理できます。
たとえば、独自のクラスを作成するだけです。
public class MyWebChromeClient extends WebChromeClient {
//Handle javascript alerts:
@Override
public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)
{
Log.d("alert", message);
Toast.makeText(context, message, 3000).show();
result.confirm();
return true;
};
...
および/または
public class MyWebViewClient extends WebViewClient {
@Override
//Run script on every page, similar to Greasemonkey:
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:alert('hi')");
}
...
ドキュメントで説明されている関数をオーバーライドしてから、クライアントをonCreateで設定します。
webview.setWebViewClient(new MyWebViewClient());
webview.setWebChromeClient(new MyWebChromeClient());