Как удалить Nav из WebView, когда я перехожу с одной страницы на другую в Android Studio? - PullRequest
0 голосов
/ 27 февраля 2020

// Объявление

public class DealerLoginActivity extends AppCompatActivity {
    WebView webView;
    ProgressBar progressBar;
    AdView mAdView;
    String url = "http://farmech.bih.nic.in/FMNEW/MDealerLoginNew.aspx";

// Инициализация

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dealer_login);
        webView = findViewById(R.id.web_views);
        new MyAsynTask().execute();

        progressBar = findViewById(R.id.progress_login);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webView.getSettings().setBuiltInZoomControls(true);

        AdView adView = new AdView(this);
        adView.setAdSize(AdSize.BANNER);
        adView.setAdUnitId("ca-app-pub-7657536360406007/9152366791");

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });
        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }

// Использование библиотеки 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) {

            super.onPageFinished(view, url);

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

        }
    }

}

// Этот код отлично работает для открытия URL-адреса, не отображая нижний колонтитул, заголовок и навигацию, (https://i.stack.imgur.com/j3ZIp.jpg), но после нажатия кнопки «Отправить» или любой другой ссылки, доступной в WebView (url), отобразятся верхний и нижний колонтитулы (https://i.stack.imgur.com/ByAgz.jpg), как я могу это исправить ..... как удалить постоянный удалить из веб-просмотра

1 Ответ

1 голос
/ 27 февраля 2020

Вероятно, подход можно переопределить onPageFinished методом и ввести javascript, чтобы удалить эти html элементы.

 @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);");
    }

И убедитесь, что вы включили javascript

webSettings.setJavaScriptEnabled(true);
...