Android使用WebView获取网页文本
WebView执行js的两种方式:
- 用WebView的loadUrl()
- 用WebView的evaluateJavascript()
两种方式的区别主要是loadUrl()会使页面刷新,而evaluateJavascript()不会使页面刷新,evaluateJavascript()在Android4.4后才可使用。
改成用WebView的evaluateJavascript()执行js的话下面这样也行,而且不将js代码包装在匿名函数里也不会出现白屏:
public void click1(View v){
String a=edit.getText().toString();//获取EditText框的内容
String js="javascript:document.getElementById('index-kw').value='" + a + "';";
wv_main.evaluateJavascript(js,null);
}
用WebView的evaluateJavascript()还可以获取网页文本:
案例:获取百度首页输入框和“百度一下”按钮的文本:
public void click2(View v){
String js1="javascript:document.getElementById('index-kw').value;";//获取输入框文本
String js2="javascript:document.getElementById('index-bn').innerHTML;";//获取百度一下按钮文本
wv_main.evaluateJavascript(js2, new ValueCallback<String>() { //执行js2
@Override
public void onReceiveValue(String value) {
String str=value;
Toast.makeText(WebActivity.this,str,Toast.LENGTH_LONG).show();
}
});
}
结果:
