2017-06-17 77 views
2

請注意,此問題不是How to display some part of webpage in android webview?Android WebView: display only some part of website的重複,因爲它們排除某些元素,而我只想包含一個元素。在webview中顯示網頁的一部分

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; 
} 

}

現在同時獲得http://www.dota2.com/leaderboards#europe它得到完整的頁面。我只想要那裏的桌子。與tbody id="leaderboard_body"。我有點新,所以請冷靜一下。提前致謝。

+0

使用https://jsoup.org/獲取頁面的有趣內容併爲提取的內容構建自己的UI。 – Kamil

+1

我想我只是告訴你我是noob。無論如何感謝生病通過文件找出如何得到該死的表。 – Rishav

+1

本教程應該有所幫助:http://www.androidbegin.com/tutorial/android-jsoup-listview-images-texts-html-tables-tutorial/ – Kamil

回答

2

其實你想在技術上實現的是去除html的一些部分。

發生什麼事是你的webview 得到你提供給它的URL的所有內容,這是http的工作原理固有的。 webview類不允許您選擇僅顯示html的特定部分,因此您必須做的是在使用javascript進行呈現之前刪除不需要的內容。

如果你想使用webview顯示它,那麼你的文章中的解決方案就是你想要的,如果你想解析html並使用Android UI類來呈現它,那麼jsoup解決方案就是你想要的(不過這是有點矯枉過正)。

如果你真的不熟悉這個,我的提示是:使用API​​。可能類似於https://docs.opendota.com/。幾乎所有不是靜態工作的應用程序(和網站)都是通過使用API​​。 Here是爲什麼你想這樣做,而不是用jsoup解析的介紹。