请注意,此问题与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
的那个。我有点新鲜,所以请冷静下来。提前谢谢。
答案 0 :(得分:1)
实际上你想要在技术上实现的是删除html的某些部分。
您的网页浏览将获取您提供给它的网址的所有内容,这是http工作原理所固有的。 webview类不允许您选择仅显示html的特定部分,因此您必须做的是在使用javascript渲染之前删除您不想要的内容。
如果您想使用webview显示它,那么您的帖子中的解决方案就是您想要的,如果您想解析html并使用Android UI类渲染它,那么jsoup解决方案就是您想要的(但这是一个有点矫枉过正。)
如果您真的对此不熟悉,我的提示是:使用API。可能类似于https://docs.opendota.com/。几乎所有非静态工作的应用程序(和网站)的方式都是使用API。 Here介绍了为什么要这样做,而不是使用jsoup进行解析。