通过webview仅显示一部分网页

时间:2016-08-31 05:59:34

标签: android

我正在构建我的第一个应用程序,它需要一个活动来显示webview中的一部分网页。该网页包含许多我不希望我的应用展示的添加内容和其他无关紧要的内容。

例如,我将youtube作为示例网页,并试图不显示正文。我检查了youtube页面并找到了" page-container"作为网页中央部分的id。

public class ResultsActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_results);
    final WebView webview = (WebView)findViewById(R.id.results_webview);
    webview.getSettings().setDomStorageEnabled(true);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url)
             {
            webview.loadUrl("javascript:function() { " +
                    "document.getElementById('page-container')[0].style.display='none'; " +
                    "})()");
             }
         });
    webview.loadUrl("https://www.youtube.com");
}

但onPageFinished()函数中的javascript代码无效。完整的YouTube页面正在应用中打开。

1 个答案:

答案 0 :(得分:0)

我猜您必须通过检查网页手动检查ID。完成后,您可以使用此类似帖子jsoup html parser中提到的here

Document doc = Jsoup.connect(URL).get();
Elements elementsHtml = doc.getElementById(id);
for(Element element: elementsHtml)
{
   Log.i("ELEMENTI",URLDecoder.decode(element.text(), HTTP.UTF_8));
}