4

Hi I am developing android in which I am using web-view. My web-view has more than one pages inside that. So my intended functionality is like that when I press device back button it should return to previous web url and when it on last web page it should close that activity and come to previous activity. I tried it in following way which works fine on new devices but not working properly on older android versions.My code looks like:

     webView = new WebView(this);
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                if (url.contains(URLManager.URL_DICOM_BACK_PRESSED_URL)) {
                    processBackPressed();
                    return true;
                } else {
                    return super.shouldOverrideUrlLoading(view, url);
                }


            }


            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                if (failingUrl.contains(URLManager.URL_DICOM_BACK_PRESSED_URL)) {
                    processBackPressed();
                } else {
                    showError("Server unreachable");
                }

            }

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

                runOnUiThread(new Thread() {
                    @Override
                    public void run() {
                        super.run();

                        if(!webviewLoaded) {
                            webviewLoaded = true;
                            content.removeAllViews();
                            content.setOrientation(LinearLayout.VERTICAL);
//                            LLM.addInParent(content, textView, -1001, -999, 0);
                            LLM.addInParent(content, webView, -1001, 0, 1);
                        }
                    }
                });
            }
        });
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl(url);

    @Override
    public void onBackPressed() {
        if (webView != null && webView.canGoBack()) {

            webView.goBack();
        } else {

            processBackPressed();
        }
    }

    public void processBackPressed() {
        super.onBackPressed();
        finish();
    }

Above code works fine one new android versions but not working on older versions. What I observe shouldOverrideUrlLoading not works on older versions.

Am I doing anything wrong? Need some help. Thank you.

nilkash
  • 7,408
  • 32
  • 99
  • 176

0 Answers0