2012-09-04 12 views
8

Quiero hacer una aplicación que cargue el contenido de la página web en la vista web. Quiero mostrar solo una cosa en particular en toda la vista web, no todo el contenido de la página web.Mostrar una parte de la página web en la vista web android

Aquí hay un ejemplo. Si utilizo: 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 como la URL de la vista web, carga todos los contenidos de la página en la vista web. Pero quiero eliminar el banner de la página y mostrarlo en la vista web de mi aplicación.

He intentado usar adblocker usando etiquetas CSS, pero eso no me está ayudando. Por favor, dame una idea para superar este problema.

Gracias.

Respuesta

15

Gracias por la respuesta Zyber. Lo he solucionado usando la inyección de JavaScript en el código para WebView en Android.

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"); 

Esto resolvió mi propósito y es fácil de usar.

+0

"document.getElementsByTagName ('header') [0] .style.display =" none ";" + "})()"); es el encabezado es el nombre de la clase div, y ninguno es no se puede resolver en el estudio –

2

cheque Jsoup proporciona una biblioteca que proporciona una manera fácil de extraer los elementos HTML de una página web

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"); 

este ejemplo se ejecuta un HTTP GET y luego se extrae un elemento div con el "nombre de clase" de clase que se puede luego cargue en su webview

+0

cómo pone este elemento en una vista web? ¿puedes dar un ejemplo completo? – delive

+0

Esto no responde la pregunta OP. Usando Jsoup solo para analizar el html cargado. Debe usar webView dos veces para cargarlo – kidnan1991

Cuestiones relacionadas