Vous pouvez certainement utiliser les deux, ils ont simplement des fonctions différentes. La définition de votre propre WebViewClient personnalisé vous permet de gérer onPageFinished, shouldOverrideUrlLoading, etc., tandis que le WebChromeClient vous permet de gérer alert() de Javascript et d'autres fonctions.
Il suffit de créer sa propre classe, par exemple :
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;
};
...
et / ou
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')");
}
...
Il suffit de remplacer les fonctions décrites dans la documentation, puis de définir votre client dans onCreate avec :
webview.setWebViewClient(new MyWebViewClient());
webview.setWebChromeClient(new MyWebChromeClient());