Android使用WebView獲取網頁文本


Android使用WebView獲取網頁文本

WebView執行js的兩種方式:

  1. 用WebView的loadUrl()
  2. 用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();
            }
        });
    }

結果:

成功獲取


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM