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