使用WebView加载网页时,获取网页数据

一、在使用WebView的过程中,遇到这样的需求,需要获取加载WebVeiw中的某些数据,然后自行处理。


1、先写好webview的加载过程:

webView = new WebView(this); //创建webview 
setContentView(webView);      //设置给contentview
webView.loadUrl(“ http://www.baidu.com “);    //尝试的加载网页
webView.getSettings().setJavaScriptEnabled(true);  //让网页支持javaScript

//在网页的javaScript中添加方法接口; 

webView.addJavascriptInterface(new Handler(), “handler”); 

//添加“客户端”  
webView.setWebViewClient(new WebViewClient() {  
@Override  
public void onPageFinished(WebView view, String url) {  
Toast.makeText(WebViewActivity.this, “网页加载完成”, 0).show(); 

//运行上面在JavaScript中添加的hangder方法接口; 
view.loadUrl(“javascript:window.handler.show(document.body.innerHTML);”);  
super.onPageFinished(view, url);  
}  
}); 



二、在代码中实现的JavaScript中添加的接口:

//添加内部类

class Handler {  

//实现一添加进JavaScript中回调接口的方法
public void show(String data) {  
Toast.makeText(WebViewActivity.this, “执行了handler.show方法”, 0).show();  
new AlertDialog.Builder(WebViewActivity.this).setMessage(data).create().show();  
}  
}  

  三、一些关于webview中查看数据的说明

1. webView.getSettings().setJavaScriptEnabled(true);

设置webView支持js.
2.webView.addJavascriptInterface(new Handler(), “handler”);
使用了这段代码后就相当于在网页的js中增加了一个叫handler的类,而这个handler就是后面写的内部类。可以 直接在网页中这样使用:onClick=”javascript:handler.show(‘hello’)”
也就是说直接通过网页中的js来执行java代码。
3.webView.setWebViewClient(new WebViewClient()
为webView设置一个处理器(暂且这样叫吧),在webView加载完成后执行下面的方法
view.loadUrl(“javascript:window.handler.show(document.body.innerHTML);”);
document.body.innerHTML是一段js,会获取到网页中body标签里的内容,然后把这个值传递给Handler类的show方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值