阅读 618

Android使用WebView获取网页文本

Android使用WebView获取网页文本

WebView执行js的两种方式:

  1. 用WebView的loadUrl()
  2. 用WebView的evaluateJavascript()

两种方式的区别主要是loadUrl()会使页面刷新,而evaluateJavascript()不会使页面刷新,evaluateJavascript()在Android4.4后才可使用。

上篇的往百度首页输入框输入内容的时候出现白屏现象应该就是执行loadUrl()会使页面刷新导致的。

改成用WebView的evaluateJavascript()执行js的话改成这样js里不用加var c=也可以:

public void click1(View v){
        String a=edit.getText().toString();//获取EditText框的内容
        String js="javascript:document.getElementById(‘index-kw‘).value=‘" + a + "‘;";
        //wv_main.loadUrl("javascript:var c=document.getElementById(‘index-kw‘).value=‘" + a + "‘;");//用loadUrl()这里要加上var 变量名=,否则会白屏
        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() {	//执行js2
            @Override
            public void onReceiveValue(String value) {
                String str=value;
                Toast.makeText(WebActivity.this,str,Toast.LENGTH_LONG).show();
            }
        });
    }

结果:

原文:https://www.cnblogs.com/harglo/p/14643649.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐