简体   繁体   English

android webview shouldOverrideUrlLoading没有调用

[英]android webview shouldOverrideUrlLoading is not calling

I am trying to load URL in webview But it does not calling shouldOverrideUrlLoading 我正在尝试在webview中加载URL,但未调用shouldOverrideUrlLoading

 webview.setWebViewClient(new HelloWebViewClient());
        webview.getSettings().setJavaScriptEnabled(true);
        //   webview.loadUrl("http://www.google.com");
//        webview.loadUrl("http://www.androidexample.com/media/webview/login.html");
        webview.loadUrl(URL_TO_LOAD);
        webview.getSettings().setDomStorageEnabled(true);
        webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        webview.setWebChromeClient(new WebChromeClient() {
            @Override
            public boolean onJsAlert(WebView view, String url, String message, JsResult result) {

                Log.d("URL!!!! ", url);
                Log.d("message!!!! ", message);
              //  Log.d("URL!!!! ", url);

                return super.onJsAlert(view, url, message, result);
                // System.out.println("url = " + url);

            }
        });

and this is my class 这是我的课

 private class HelloWebViewClient extends WebViewClient {
            ProgressDialog progressDialog;

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                if (progressDialog == null) {
                    // in standard case YourActivity.this
                    progressDialog = new ProgressDialog(TestWv.this);
                    progressDialog.setMessage("Loading...");
                    progressDialog.show();
                }
            }

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                System.out.println("onPageFinished = ");
                try {
                    if (progressDialog.isShowing()) {
                        progressDialog.dismiss();
                        progressDialog = null;
                    }
                } catch (Exception exception) {
                    exception.printStackTrace();
                }
            }
        }

it works proper if i pass google.com... it works properly... but if i am passing my URL it does not calling shouldOverrideUrlLoading or onPageFinished method.. what should the problem? 如果我通过google.com,它就可以正常工作...。它可以正常地工作...但是,如果我通过我的URL,它不调用shouldOverrideUrlLoading或onPageFinished方法。

Please Help... 请帮忙...

Try to disable dom storage with: 尝试通过以下方式禁用dom存储:

 webview.getSettings().setDomStorageEnabled(false);

and see if shouldOverrideUrlLoading will be called now. 看看是否应该立即调用shouldOverrideUrlLoading。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM