2012-09-04 8 views
8

웹 페이지의 콘텐츠를 webview에로드하는 앱을 만들고 싶습니다. 나는 웹 페이지의 전체 내용이 아닌 전체 웹뷰에서 특정한 것을 보여주고 싶다.웹 페이지의 일부를 webview에 표시합니다.

다음은 예입니다. 웹보기의 URL로 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을 사용하면 페이지의 모든 내용이 webview에로드됩니다. 그러나 나는 페이지의 배너를 제거하고 내 응용 프로그램의 webview에 표시하고 싶습니다.

나는 CSS 태그를 사용하여 adblocker를 사용해 보았지만 그게 도움이되지 못합니다. 이 문제를 해결할 수있는 아이디어를 알려주세요.

감사합니다.

답변

15

답변 해 주셔서 감사합니다. 안드로이드의 WebView 코드에서 자바 스크립트 삽입을 사용하여 해결했습니다.

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 ";"+ "})()"); 헤더는 div 클래스의 이름이며 스튜디오에서는 해결할 수 없습니다. –

2

체크 Jsoup는이 예는 다음 클래스 "클래스 이름"을 가진 div 요소를 추출하는이 HTTP GET하고있는 당신이 할 수있는 실행

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

웹 페이지에서 HTML 요소를 추출하는 쉬운 방법을 제공하는 라이브러리를 제공합니다 귀하의 웹뷰에로드하십시오

+0

어떻게이 요소를 webview에 넣을 수 있습니까? 당신은 예를 가득 채울 수 있습니까? – delive

+0

이것은 OP 질문에 대답하지 않습니다. Jsoup를 사용하여로드 된 html을 구문 분석합니다. webView를 두 번 사용하여로드해야합니다. – kidnan1991

관련 문제