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

结果:

成功获取
posted @ 2021-04-11 13:42  harglo  阅读(1546)  评论(0)    收藏  举报