2016-11-18 24 views
0

Android WebView에 웹 사이트의 일부만 표시하려면 어떻게해야합니까? 에,Android WebView에 웹 사이트의 일부만 표시하는 방법

<table class="VBlock"> 
<tr class="normal"> 
<th class="VBlock">Class</th> 
<th class="VBlock">Lesson</th> 
<th class="VBlock">Subject</th> 
<th class="VBlock">represented by</th> 
<th class="VBlock">Subject</th> 
<th class="VBlock">Room</th> 
<th class="VBlock">Notes</th> 
</tr> 

... 

</table> 

음 :

는이 웹 사이트의 HTML 코드가 표시되어야 헤드 블록 주로 각 테이블 행에 대해 다음과 같이 스타일 테이블의 존재 바디 블록을 포함 WebView는 특정 테이블 행만 표시해야합니다. 이 테이블 컬럼의 내용에 의존한다 : ArrayList에에 비교하여

<th class="VBlock">Class</th> 

(주 열에있는 단어가 아닌 최종 단지 상상하다).

난 그냥 부분적으로 웹 검색을 찾은 다음 코드를 작성했습니다 : 나는이의 ""webView1.loadUrl ("")의 PARAMS에 뭔가를 작성해야 생각

public void getWData(){ 
    final WebView webView1 = (WebView) findViewById(R.id.webView1); 
    webView1.getSettings().setJavaScriptEnabled(true); 
    webView1.getSettings().setBuiltInZoomControls(true); 
    webView1.setWebViewClient(new WebViewClient(){ 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      webView1.loadUrl(""); 
     } 

    }); 
    webView1.loadUrl(url); 

을 onPageFinished - 포기하지만 확실하지 않습니다. 당신이 몇 가지 값이 ArrayList에있는 가정 당신의 도움이

+0

ArrayList에 몇 가지 값이 있으며 테이블에 일치하는 값만 가져 오려는 것인가? –

+0

네, 그게 제가 원하는 것입니다. – tb8801

답변

1

에 미리

감사합니다;

List<String> list; 

복잡한 Javascript 기능을 생성하여 여기에서 실행해야합니다. 다음과 같이 먼저 문자열 형식으로 자바 스크립트 목록에 ArrayList를 변환 할 수 있습니다

String listStr = "["; 
for(int i=0; i<list.size(); i++){ 
    listStr += list.get(i); 
    if(i!=list.size()-1) 
     listStr += ","; 
} 
listStr += "]"; 

를이 코드 부분의 말, 당신은 자바 스크립트에서 사용할 준비가 문자열 형식의 목록을 가지고있다. 다음과 같이 이제 onPageFinished에서 loadUrl을 수정해야 다음과 같이

String func = "javascript:(function() { " + 
    "var arrayList = " + listStr + ";" + 
    "var tableRows = document.getElementsByTagName('th');" 
    "for(var j=0; j<tableRows.length; j++){"+ 
    "tableRows[j].style.visibility = 'hidden';"+ 
    "};"+ 
    "for(var i=0; i<arrayList.length; i++){"+ 
     "for(var j=0; j<tableRows.length; j++){"+ 
      "if(tableRows[j].innerHTML != arrayList[i]){"+ 
       "tableRows[j].style.visibility = 'visible';"+ 
      "}"+ 
     "}"+ 
    "}"+ 
"})()"; 

을 그리고,이 자바 스크립트 기능을 실행할 수 있습니다

webView1.loadUrl(func); 

기본적으로,이 javascipt 기능은 처음에는 모든 테이블 행을 숨 깁니다. 그런 다음 배열을 반복하고 일치하는 것을 표시합니다.

0

당신은 Jsoup을 사용할 수 있습니다. 전체 HTML 코드를 제공하지 않으므로 예제를 보여 드릴 수 없습니다.

나는 당신에게 문을 보여줄뿐입니다. 당신은 그걸 걸어야 만하는 사람입니다. :)

희망이 있습니다.