在webview中显示网页的一部分

时间:2017-06-17 19:13:15

标签: javascript java android android-studio webview

请注意,此问题与How to display some part of webpage in android webview?Android WebView: display only some part of website不重复,因为它们排除了某些元素,而我只想包含一个元素。

new Vue({
    el: "#app",
    router,
    store,
    render: h => h(App)
});

}

现在获取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的那个。我有点新鲜,所以请冷静下来。提前谢谢。

1 个答案:

答案 0 :(得分:1)

实际上你想要在技术上实现的是删除html的某些部分。

您的网页浏览获取您提供给它的网址的所有内容,这是http工作原理所固有的。 webview类不允许您选择仅显示html的特定部分,因此您必须做的是在使用javascript渲染之前删除您不想要的内容。

如果您想使用webview显示它,那么您的帖子中的解决方案就是您想要的,如果您想解析html并使用Android UI类渲染它,那么jsoup解决方案就是您想要的(但这是一个有点矫枉过正。)

如果您真的对此不熟悉,我的提示是:使用API​​。可能类似于https://docs.opendota.com/。几乎所有非静态工作的应用程序(和网站)的方式都是使用API​​。 Here介绍了为什么要这样做,而不是使用jsoup进行解析。