2017-06-17 73 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解析的介绍。

相关问题