如何在Android中加载网页,但将其包装到视图中以便以不同的方式查看?

时间:2012-02-24 23:39:38

标签: android webview android-webview

我正在编写一个应用程序来查看基于Web的在线文本游戏。我希望能够加载网页,然后从缓冲的网页中获取某些元素并显示它们。

这需要两个主要部分:

  • 缓冲网页但不显示网页的能力
  • 通过特定属性从缓冲的网页获取元素的能力

我意识到我的问题有点笼统,但目的很明确,只能得到一个简单的答案。如何在不显示网页的情况下缓冲网页,如何从缓冲的网页中获取某些元素?

谢谢!

3 个答案:

答案 0 :(得分:0)

您可以使用HttpURLConnection,可以解析流:

    HttpURLConnection urlConnection = null;
    URL url = new URL(urlString);

    urlConnection = (HttpURLConnection) url.openConnection();
    urlConnection.setReadTimeout(15000);
    urlConnection.setConnectTimeout(15000);
    urlConnection.setUseCaches(false);
    urlConnection.setDefaultUseCaches(false);

    urlConnection.setRequestMethod("GET");

    urlConnection.setDoOutput(true);
    urlConnection.setDoInput(true);

    urlConnection.connect();


    inpStream = urlConnection.getInputStream();

答案 1 :(得分:0)

a few ways从Android中的网址获取数据,但缺点是HttpURLConnection可能会执行您需要的操作而不显示页面。

您可以使用JSoup从页面中获取元素。您可以在StackOverflow中搜索有关它的问题和答案。这是一个这样的:Android JSoup Example

答案 2 :(得分:0)

关于你的两个问题的一些想法:

在Android中加载网页很容易(使用WebView),但从它的声音来看,您需要拥有页面的源来获取特定元素。现在,有两种方法可以解释这一点:您要么想从网页中获取特定数据并在本机视图中显示(例如TextView),要么就是在寻找一种操作原始代码并隐藏/显示特定元素的方法。

两者归结为同样的事情:您需要能够以方便的方式访问源并从中获取数据或操纵它。因此,你可能想要使用一些HTML解析器,例如JSoup,HTMLCleaner等(那里有一大堆)。这些库通常提供加载本地和远程页面,因此可能不需要首先手动获取源。

就我对这些库的经验而言,他们基本上都使用某种“树traverer / walker”来迭代HTML元素的层次结构 - 文档结构 - 但也提供了通过id查找元素的便捷方法,标签,名称等。通过这种方式,您可以从特定元素中获取数据,甚至可以操纵原始页面来显示/隐藏您希望用户最终看到的内容。