簡體   English   中英

android webview shouldOverrideUrlLoading沒有調用

[英]android webview shouldOverrideUrlLoading is not calling

我正在嘗試在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);

            }
        });

這是我的課

 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();
                }
            }
        }

如果我通過google.com,它就可以正常工作...。它可以正常地工作...但是,如果我通過我的URL,它不調用shouldOverrideUrlLoading或onPageFinished方法。

請幫忙...

嘗試通過以下方式禁用dom存儲:

 webview.getSettings().setDomStorageEnabled(false);

看看是否應該立即調用shouldOverrideUrlLoading。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM