【问题标题】:How to clear html page before showing into a webview in Android?如何在 Android 中显示到 webview 之前清除 html 页面?
【发布时间】:2015-07-04 04:53:54
【问题描述】:

我有一个网页的 URL,要在我的 Android 应用程序的 web 视图中显示。在显示此页面之前,我想从某些标记(例如页眉、页脚、ecc..)中清除此页面的 html 代码,以便仅显示少量信息。我该怎么做?我试图解决使用 JSoup 的问题,但我不明白如何创建“新页面”并将其传递给 webview。有人可以帮帮我吗?

编辑

我通过 jsoup 库清理了无用的 html 代码。然后,总是通过这些,我得到头部和身体内容,最后我通过这些行显示“清除”的网页:

headURL = doc.select("head").outerHtml();
bodyURL = doc.select("body").outerHtml();

webview.loadData( "<html>"+headURL+bodyURL+"</html>" , "text/html", "charset=UTF-8");

webview.setWebViewClient(new DisPlayWebPageActivityClient());

视图显示新页面但不加载头部指定的css文件(尚未触摸)。谁能告诉我为什么?

【问题讨论】:

    标签: android url webview jsoup data-cleaning


    【解决方案1】:

    您可以获取您想要显示为字符串的网页,解析并删除您不想要的任何内容,然后将该字符串作为数据加载到您的 web 视图中。

    类似:

    String webContent = fetchPage(url);
    String cleanedWebContent = cleanUp(webContent);
    webView.loadData(cleanedWebContent, "text/html", "UTF-8");
    

    当然,您需要实现 fetchPagecleanUp,因为它们不是 Android 方法

    【讨论】:

    • 太好了,正是我需要的!我实施了这个解决方案,但我仍然有一些问题。 webview 加载了我的自定义 html 代码,但它似乎没有加载 css 文件,我做错了什么?
    • @FrancescoLombardo,CSS 文件来自哪里?互联网 ?您可能需要使用 loadDataWithBaseUrl() 来加载您的 HTML。
    • @JonasCz 是的,整个 url 都来自互联网......你能发布一个关于如何使用这种方法的例子吗?
    • @FrancescoLombardo 使用它就像loadDataWithBaseURL(myBaseUrl, cleanedWebContent, "text/html", "UTF-8", null)myBaseUrl 是一个字符串,HTML 页面来自的原始 URL。
    • 另外,如果您可以访问原始 HTML 文件,请尝试在 CSS 参考中使用相对路由。例如:&lt;link rel="stylesheet" type="text/css" href="./theme.css"&gt;
    猜你喜欢
    • 1970-01-01
    • 2019-07-08
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多