【问题标题】:Displaying a part of a webpage in webview在 webview 中显示网页的一部分
【发布时间】:2017-06-17 19:13:14
【问题描述】:

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

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" 的那个。我是个新人,所以请冷静一下。提前致谢。

【问题讨论】:

  • 使用jsoup.org获取页面的有趣内容并为提取的内容构建自己的UI。
  • 我想我只是告诉你我是菜鸟。无论如何,谢谢我通过文档来弄清楚如何获得该死的桌子。
  • 本教程应该会有所帮助:androidbegin.com/tutorial/…
  • 这正是我所需要的谢谢伙计。 :)

标签: javascript java android android-studio webview


【解决方案1】:

其实你想要在技术上实现的是去掉html的某些部分。

发生的情况是,您的 webview 获取您提供给它的 URL 的所有内容,这是 http 工作方式固有的。 webview 类不允许您选择仅显示 html 的特定部分,因此您必须做的是在使用 javascript 渲染之前删除您不想要的部分。

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

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

【讨论】:

    猜你喜欢
    • 2012-08-28
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多