Удалить навигационную панель из Webview в Android Studio? - PullRequest
0 голосов
/ 21 февраля 2020

Как мне удалить панель навигации из Webview в Android Studio?

Это код, который у меня есть.

webView.setWebViewClient(new WebViewClient() {

  //webview used to display a URL in the application

  @Override
  public void onPageFinished(WebView view, String url) {

    //webview load url and remove header from website

    webView.loadUrl("javascript:(function() { " +
      "document.getElementByTagName('header')[0].style.display='none';" +
      "document.getElementsById('header')[0].style.display='none'; " +
      "document.getElementsById('navbar navbar-default header-ontop')[0].style.display='none'; " +
      "})()");
  }
});
webView.loadUrl(url);

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

// используя библиотеку Jsoup, моя проблема решится

  @SuppressLint("StaticFieldLeak")
    private class MyAsynTask extends AsyncTask<Void, Void, Document> {
        @Override
        protected Document doInBackground(Void... voids) {

            Document document = null;
            try {
                document = Jsoup.connect(url).get();
                document.getElementsByTag("header").remove();
                document.getElementsByTag("nav").remove();
                document.getElementsByTag("footer").remove();

            } catch (IOException e) {
                e.printStackTrace();
            }
            return document;
        }

        @Override
        protected void onPostExecute(final Document document) {
            super.onPostExecute(document);
            webView.loadDataWithBaseURL(url, document.toString(), "text/html", "utf-8", "");
            webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
            webView.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                    return true;
                }

                @Override
        public void onPageFinished(WebView view, String url) {
                    view.loadUrl("javascript:var footer = document.getElementById(\"footer\");" +
                            " footer.parentNode.removeChild(footer);" +
                            " var header = document.getElementById(\"header\"); " +
                            "header.parentNode.removeChild(header);");

                    super.onPageFinished(view, url);

            progressBar.setVisibility(View.GONE);
        }
            });

        }
    }
0 голосов
/ 21 февраля 2020

Попробуйте этот код для удаления Navbar,

webView.loadUrl("javascript:document.getElementsByClassName('navbar navbar-default header-ontop')[0].style.display='none'");

В основном настройка дисплея "none".

...