2015-04-28 81 views
0

我想加载一个webview组件中的响应网页。但是我想去掉网页的页眉和页脚,并且只加载网页视图的正文。如何在android webview中实现这一点。删除android webview中的页眉和页脚

<div class="header-container"> 
<header class="header clearfix" ng-include="'/modules/core/homepage/header-partial.html'"></header> 
</div> 
+0

什么页眉/页脚样子的HTML? –

+0

我已将标题div添加到原始帖子。用例是我们正在试图创建一个应用程序,它将显示一些现有的响应网站的内容,但只想显示HTML页面的主体,并去除页眉和页脚,然后在webview上显示它 – 3xplore

回答

1

我能够除去页眉和页脚并加载使用loadDataWithBaseURL网页()方法

Document document = Jsoup.connect(mUrl).get(); 
document.getElementsByClass("header-container").remove(); 
document.getElementsByClass("footer").remove(); 
WebSettings ws = mWebView.getSettings(); 
ws.setJavaScriptEnabled(true); 
//mWebView.loadData(document.toString(),"text/html","utf-8"); 
mWebView.loadDataWithBaseURL(mUrl,document.toString(),"text/html","utf-8",""); 

作为每显影剂docs:

请注意,JavaScript的同源策略意味着使用此方法加载的页面中运行的脚本将无法访问使用'data'之外的任何方案加载的内容,包括'http(s)'。为了避免这种限制,请使用loadDataWithBaseURL()和适当的基本URL。

http://developer.android.com/reference/android/webkit/WebView.html#loadData(java.lang.String,java.lang.String中,java.lang.String中)

0

如果你想编辑html,我建议使用像jsoup这样的html解析器。它们除去的页眉和页脚,最后将数据加载到一个WebView

try { 

    // Load the html into jsoup 
    Document doc = Jsoup.connect("http://your-site.com/").get(); 

    // find and remove header 
    Element header = doc.getElementById("your-header"); 
    header.remove(); 

    // find and remove footer 
    Element footer = doc.getElementById("your-footer"); 
    footer.remove(); 

    // Load data into a WebView 
    WebView wv = (WebView) findViewById(R.id.webView); 
    WebSettings ws = wv.getSettings(); 
    ws.setJavaScriptEnabled(true); 
    wv.loadData(doc.toString(), "text/html", "utf-8"); 

} catch (IOException e) { 
    e.printStackTrace(); 
} 
+0

这正是我之前尝试过的。我能够使用webview.loadUrl()加载网站,但上述方法不会加载网站事件的内容而不删除页眉和页脚 – 3xplore