一、使用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的参数传入。
本文详细介绍了如何在WebView中利用WebViewClient和JavaScript接口进行交互,实现网页内容的动态更新。通过设置JavaScript环境、定义接入类、实现WebViewClient方法,以及提供供JavaScript调用的Java方法,可以实现在WebView页面加载完毕后,根据网页内容动态调用Java方法。此过程涉及HTML元素的获取与操作,展示了WebView与JavaScript协同工作的强大能力。

691

被折叠的 条评论
为什么被折叠?



