2017-06-17 5 views
2

Bitte beachten Sie, dass diese Frage kein Duplikat von How to display some part of webpage in android webview? oder Android WebView: display only some part of website ist, da sie einige Elemente ausschließen, während ich nur ein Element einschließen möchte.Einen Teil einer Webseite im Webview anzeigen

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    boolean validate=checkIfNet(); 
    if(!validate){ 
     finish(); 
    } 
    setContentView(R.layout.activity_main); 
    WebView wb = (WebView) findViewById(R.id.webview); 
    wb.getSettings().setJavaScriptEnabled(true); 
    wb.getSettings().setLoadWithOverviewMode(true); 
    wb.getSettings().setUseWideViewPort(true); 
    wb.getSettings().setJavaScriptEnabled(true); 
    wb.getSettings().setBuiltInZoomControls(false); 
    wb.getSettings().setPluginState(WebSettings.PluginState.ON); 
    //wb.getSettings().setPluginsEnabled(true); 
    //wb.setWebViewClient(new HelloWebViewClient()); 
    wb.loadUrl("http://www.dota2.com/leaderboards#europe"); 
} 

private boolean checkIfNet() { 
    boolean connected = false; 
    ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
    if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || 
      connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) { 
     //we are connected to a network 
     connected = true; 
    } 
    else 
     connected = false; 
    return connected; 
} 

}

Jetzt, während http://www.dota2.com/leaderboards#europe immer wird es die ganze Seite. Ich will nur den Tisch drin haben. Der mit tbody id="leaderboard_body". Ich bin irgendwie neu, also plagt mich. Danke im Voraus.

+0

Verwenden Sie die https://jsoup.org/, um den interessanten Inhalt der Seite zu erhalten und eine eigene Benutzeroberfläche für extrahierten Inhalt zu erstellen. – Kamil

+1

Ich glaube, ich habe dir gerade gesagt, ich bin noob. Wie auch immer, danke, krank durch die Dokumente gehen, um herauszufinden, vielleicht, wie man den verdammten Tisch bekommen. – Rishav

+1

Dieses Tutorial sollte helfen: http://www.androidbegin.com/tutorial/android-jsoup-listview-images-texts-html-tables-tutorial/ – Kamil

Antwort

2

Eigentlich, was Sie technisch erreichen wollen, ist es, einige Teile des HTML zu entfernen.

Was passiert ist, dass Ihr Webview wird bekommen Sie den gesamten Inhalt der URL, die Sie ihm zur Verfügung gestellt, das ist inhärent auf, wie http funktioniert. Die webview-Klasse lässt Sie nicht auswählen, nur einen bestimmten Teil des html zu zeigen, also müssen Sie das entfernen, was Sie nicht wollen, bevor Sie mit Javascript rendern.

Wenn Sie es mit einem Webview zeigen möchten, dann sind die Lösungen in Ihrem Post was Sie wollen, wenn Sie das HTML analysieren und es mit Android UI Klassen rendern wollen, dann sind die jsoup Lösungen das, was Sie wollen ein bisschen Overkill).

Wenn Sie wirklich neu sind, ist mein Tipp: Verwenden Sie eine API. Wahrscheinlich so etwas wie https://docs.opendota.com/. Die Art und Weise, wie praktisch alle Apps (und Websites), die nicht statisch sind, funktionieren, sind APIs. Here ist eine Einführung, warum Sie dies tun möchten, anstatt mit jsoup zu analysieren.

Verwandte Themen