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();
}
});
}
結果:
