2015-04-28 107 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