2012-09-04 70 views
8

我想製作一個應用程序,將網頁中的內容加載到webview中。我只想在整個網頁視圖中顯示特定的內容,而不是整個網頁的內容。在webview上顯示網頁的一部分android

這裏是一個例子。如果我使用:http://us.m.yahoo.com/w/search%3B_ylt=A2KL8xs0vUBQMg0AwAkp89w4?submit=oneSearch&.intl=us&.lang=en&.tsrc=yahoo&.sep=fp&p=digital+cameras&x=0&y=0作爲web視圖的網址,它將加載網頁視圖上的所有網頁內容。但我想刪除頁面的橫幅並在我的應用程序的webview上顯示它。

我試過使用CSS標籤的adblocker,但那不是幫助我。請給我一些解決這個問題的想法。

謝謝。

回答

15

謝謝你的答案Zyber。我已經解決了它在Android中使用WebView代碼中的JavaScript注入。

final WebView webview = (WebView)findViewById(R.id.browser); 
webview.getSettings().setJavaScriptEnabled(true); 
webview.setWebViewClient(new WebViewClient() { 
@Override 
public void onPageFinished(WebView view, String url) 
{ 
    webview.loadUrl("javascript:(function() { " + 
      "document.getElementsByTagName('header')[0].style.display="none"; " + 
      "})()"); 
} 
}); 
webview.loadUrl("http://code.google.com/android"); 

這解決了我的目的,它很容易使用。

+0

「document.getElementsByTagName('header')[0] .style.display =」none「;」+ 「})()」); 是header是div類的名稱,並且none也不能在studio中解析 –

2

檢查Jsoup提供這給從網頁

DefaultHttpClient client = new DefaultHttpClient(); 
HttpGet get = new HttpGet(url.toURI()); 
HttpResponse resp = client.execute(get); 

String content = EntityUtils.toString(resp.getEntity()); 
Document doc = Jsoup.parse(content); 
Elements ele = doc.select("div.classname"); 

此示例執行一個HTTP GET,然後提取與類「類名」的Div元素,你可以提取HTML元素的一種簡單的方法的庫然後加載你的webview

+0

你如何把這個元素放在webview中?你能舉例滿嗎? – delive

+0

這不回答OP問題。使用Jsoup來解析加載的html。您必須使用webView兩次才能加載它 – kidnan1991