2013-10-22 74 views
6

获取的HTML代码我有这样的事情从加载的WebView

final WebView w=(WebView)findViewById(R.id.webView1); 
w.loadUrl("http://somepage.com"); 

有没有什么办法让在一定的时间瞬间显示在WebView中的HTML页面? 我想获得这个HTML页面作为字符串变量。

关键是我要的JavaScript是在客户端执行后得到的html代码...

任何指引?

+0

我试过的解决方案了,但它并没有为我工作,也许这是问题的Android版本... – Lukap

+0

考虑,你只是接受了一个答案是一样的重复,我觉得你的反应奇怪。 – CommonsWare

+0

好人们说这是愚蠢的问题,他们要求关闭所以......我仍然无法从webview中读取html文本,但我想这只是在我的手机上的问题,因为其他人都说这是工作正常这就是为什么我标记为回答。 – Lukap

回答

14

我知道的一种方法;

decleration JavaScript处理您的活动

class LoadListener{ 
    public void processHTML(String html) 
    { 
     Log.e("result",html); 
    } 
} 

配置您的WebView后;

webView.getSettings().setJavaScriptEnabled(true); 
webView.addJavascriptInterface(new LoadListener(), "HTMLOUT"); 

比webview客户端;

webView.setWebViewClient(new WebViewClient() { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 

       return true; 
     }    

     @Override 
     public void onPageStarted(WebView view, String url, 
         Bitmap favicon) { 
     } 

     public void onPageFinished(WebView view, String url) { 
      view.loadUrl("javascript:window.HTMLOUT.processHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');"); 
     } 
}); 
+0

谢谢,这就是我正在寻找的 – Lukap

+3

对于API级别高于17,你需要添加@JavascriptInterface注释来工作,否则将不会被调用。 – Tomap

+1

在API 21和Adroid 4.2.2中做这项工作吗?似乎没有为我的Android 4.2.2与API 21工作。但它在Android 4.4.2和API 21的工作。 – 2014-12-03 22:30:37

1

获取代码的一种方法是使用HttpClient,如here。另一个解决方案在以下blog中给出。

+1

这不会带来饼干等 –