【问题标题】:How to get HTML tags data for any website currently open in webview in android studio如何获取当前在android studio的webview中打开的任何网站的HTML标签数据
【发布时间】:2016-06-17 22:44:06
【问题描述】:

我是安卓新手。我在 android studio 中需要一些认真的帮助。假设我有一个网站 url http://www.exampledomain.com,目前在我的 android studio 应用程序的 webview 中打开。单击按钮后,我想在 android studio 中以字符串的形式获取该网页的 html 数据。如何在android中以简单的方法获取webview页面的html。非常感谢您提前...

【问题讨论】:

    标签: android html webview


    【解决方案1】:

    您可以使用Async任务并下载网站http://www.exampledomain.com的html数据

    HttpManager.class

    public class HttpManager {
    
    public static String getData(String uri) {
    
        BufferedReader reader = null;
    
        URL url;
        try {
            url = new URL(uri);
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            StringBuilder stringbuilder = new StringBuilder();
            reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
            String line;
            while((line = reader.readLine()) != null){
                stringbuilder.append(line + "\n");
            }
            return stringbuilder.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
            if(reader != null){
                try{
                    reader.close();
                }catch(IOException e){
                    e.printStackTrace();
                    return null;
                }
            }
        }
      }
    }
    

    AsyncTask 代码:

    public class MyAsyncTask extends AsyncTask<String, String, String> {
    
    @Override
    protected String doInBackground(String... params) {
        String result = HttpManager.getData(params[0]);
        return result;
    }
    
    @Override
    protected void onPostExecute(String result) {
        //the variable result will contain all the contents you need.
    }
    

    }

    从 mainactivity 调用异步任务:

     MyAsyncTask myTask = new MyAsyncTask();
     myTask.execute("http://www.exampledomain.com");
    

    如果以上不是你的要求,试试下面的代码

    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.exampledomain.com");
      }
    
    }
    

    【讨论】:

    • 非常感谢您的慷慨回复...但是我有这段代码并且已经用于获取 html 标签。但现在我想在android studio的webview控件中打开当前网站的网站html标签......在这方面将不胜感激......最好的问候
    • 我添加了另一种查看网站源代码的方法。我希望这是你需要的。
    • 再次感谢您的慷慨回复。我在上面的问题中添加了一张图片。我现在想要的在图片中举例说明。请阅读并帮助我。我正在等待您的回复...最好的问候
    猜你喜欢
    • 2012-01-14
    • 2016-01-28
    • 1970-01-01
    • 2011-08-31
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2012-10-09
    相关资源
    最近更新 更多