2012-04-01 122 views
2

我如何从WebView获取网页的源代码?我如何从WebView获取页面源代码?

我只想在我的WebView输入www.google.com,然后当我进入这个网站,我想例如源

String a=........;(source) 
+0

你想整个源代码或只是HTML标记? – 2012-04-01 17:55:18

+0

我想整个源代码。 (例如,当我将它粘贴到.txt中并使用浏览器打开它时我想查看该网站) – 2012-04-01 17:57:05

+0

您了解我吗? – 2012-04-01 18:06:34

回答

9

我不知道这是怎么远将是很有帮助。但我已经使用下面的代码片段来获取一个小的HTML页面的数据。我希望它能帮助你。

创建类似下面的一个类,

class MyJavaScriptInterface 
    { 
     @SuppressWarnings("unused") 
     public void processHTML(final String html) 
     { 
      Log.i("processed html",html); 

      Thread OauthFetcher=new Thread(new Runnable() { 

       @Override 
       public void run() { 

        String oAuthDetails=null; 
         oAuthDetails=Html.fromHtml(html).toString(); 
         Log.i("oAuthDetails",oAuthDetails); 

       } 
      });OauthFetcher.start(); 
     } 
     } 

现在,在您的onCreate(),

webview.getSettings().setJavaScriptEnabled(true); 
webview.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT"); 

    webview.setWebViewClient(new WebViewClient(){ 

      @Override 
      public void onPageFinished(WebView view, final String url) { 


       String oAuthUrl=getString("www.google.com"); 

       if(url.contains(oAuthUrl)) 
       { 
        Log.i("Contains","Auth URL"); 

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

       progressDialog.show(); 
      } 
     }); 

现在发生的事情是,当你的页面加载完成后,将JavaScript类会被调用,它将检索页面源并按照您的要求将其存储在字符串中。

+0

我现在看到它,我正在尝试这个谢谢。 – 2012-04-02 15:56:49

+0

位图和progressDialogit不会导入,我将twitter_webview更改为webvie?什么可以做 – 2012-04-02 16:10:57

+1

什么是getstring? – 2012-04-02 16:12:12

4

和API 17

import android.webkit.JavascriptInterface; 

public class MainActivity extends Activity { 

final Context myApp = this; 

@JavascriptInterface 
public void processHTML(String html) { 
    if (html == null) 
     return; 

} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final WebView browser = (WebView) findViewById(R.id.webview); 
    browser.getSettings().setJavaScriptEnabled(true); 
    browser.addJavascriptInterface(this, "HTMLOUT"); 
    browser.setWebViewClient(new WebViewClient() { 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      browser.loadUrl("javascript:window.HTMLOUT.processHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');"); 
     } 
    }); 
    browser.loadUrl("http://www.google.co.il"); 
} 

}