final Context myApp = this;
/* Uma instância dessa classe será registrado como uma interface de JavaScript
classe MyJavaScriptInterface */
{
@JavascriptInterface
@SuppressWarnings("unused")
public void processHTML(String html)
{
// Processar o HTML de acordo com a necessidade do APP.
}
}
final WebView browser = (WebView)findViewById(R.id.browser);
/* O javaScript deve ser ativado se você quer que ele funcione, obviamente */
browser.getSettings().setJavaScriptEnabled(true);
/* Aqui é registrado uma nova interface de JavaScript chamado HTMLOUT */
browser.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
/* O WebViewClient deve ser definido antes de chamar o loadUrl! */
browser.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
/* <span id="result_box" class="" lang="pt"><span class="hps">Esta chamada</span> <span class="hps">injeta o</span> <span class="hps">JavaScript</span> <span class="hps">para dentro da página</span> <span class="hps">quando termina </span><span class="hps">de carregar</span>.</span> */
browser.loadUrl("javascript:window.HTMLOUT.processHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
}
});
/* Carrega a página desejada */
browser.loadUrl("https://www.canalti.com.br");