一、使用WebViewClient监听页面加载完毕,并定义js要调用的方法
//1、首先开启javasript并设置接入类
s.setJavaScriptEnabled(true);
webView.addJavascriptInterface( this,"main" );
//2、实现WebViewClient
webView.setWebViewClient(new WebViewClient()
{
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true ;设置WebView禁止打开新tag
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
//获取HTML
webView.loadUrl("javascript:window.main.getHtml(document.body.innerHTML)" );
}
}
});
//3、供javascript调用java的方法
public void getHtml(String data){
//data为html内容
}
}
二、分析
webView .loadUrl(
"javascript:window.main.getHtml(document.body.innerHTML)" )
1、main:javascript需要调用的方法所在类,通过“webView.addJavascriptInterface(
this ,
"main" );”来设置。
2、getHtml:即javascript需要调用的方法。
3、documen.body.innerHtml:获取网页内容并作为getHtml的参数传入。