前言
有时候我们可能需要做一些模拟操作,比如爬虫,一般我们会直接采用HTTP请求实现扒取网页内容,不过,我们可以使用WebView来实现。
如何实现
WebView初始化,我们为其设置参数,为其设置嵌入JavaScript代码的Java对象。
this.getSettings().setJavaScriptEnabled(true);
this.addJavascriptInterface(new InJavaScriptLocalObj(), "java_obj");
this.setWebViewClient(new CustomWebViewClient());
在CustomWebViewClient中,当访问的http请求加载完成的时候,加载JavaScript代码,在JavaScript代码中调用我们之前嵌入的java对象。
/** *@author linzewu */
final class CustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:window.java_obj.getSource('
'+" +"document.getElementsByTagName('html')[0].innerHTML+'');");
super.onPageFinished(view, url);
}
@Override
public void o