赞
踩
我也是奇怪为什么Android不直接提供一个接口来访问网页数据呢?还需要使用如此麻烦的方式来获取网页。仅三步就可以获取了。
创建LoadListener类
static class LoadListener {//由于需要我写成static的了。
public LoadListener() {
}
public void processHTML(String html) {
CNTrace.d("result : " + html);//看这里就是网页的源码的了。
}
}
//找到我们的WebView。
WebView webView = (WebView) view.findViewById(R.id.webView);
//打开WebView对JavaScript的支持。
webView.getSettings().setJavaScriptEnabled(true);
//添加的JavaScript的接口。
webView.addJavascriptInterface(new LoadListener(), "HTMLOUT");
webView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) { // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边
CNTrace.d("url : " + url);
view.loadUrl(url);
return true;
}
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
//下面这句就是将HTMLOUT输出到刚才的那个类中
view.loadUrl("javascript:window.HTMLOUT.processHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
}
});
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。