Вы, конечно, можете использовать оба, они просто имеют разные функции. Установка собственного пользовательского WebViewClient позволяет вам обрабатывать onPageFinished, shouldOverrideUrlLoading и т. Д., WebChromeClient позволяет вам обрабатывать alert () и другие функции Javascript.
Просто создайте свой собственный класс, например:
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());