shouldoverrideurlloading not called Webview Android

shouldoverrideurlloading not called Webview Android

本文关键字:Android Webview called not shouldoverrideurlloading      更新时间:2023-09-26

首先,这篇文章可能看起来像是其他问题的可能重复,但我经历了很多问题,但发现它们没有帮助。现在我的问题是我正在我的 Web 视图中加载一个 URL,然后我想在 webview 上的每个事件上跟踪 URL,所以我为 Webview 设置了 WebviewClient 并覆盖了应该覆盖网址加载方法,但在第一个事件之后,应该覆盖网址加载没有被调用。(第一次工作)

这是我使用的代码:

    wvSecurity = (WebView) findViewById(R.id.wvSecurity);               
    wvSecurity.getSettings().setJavaScriptEnabled(true);
    wvSecurity.getSettings().setAllowContentAccess(true);
    wvSecurity.getSettings().setAllowUniversalAccessFromFileURLs(true);     
    wvSecurity.getSettings().setBuiltInZoomControls(false);
    wvSecurity.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    wvSecurity.getSettings().setLoadWithOverviewMode(true);
    wvSecurity.getSettings().setDomStorageEnabled(true);
    wvSecurity.loadUrl("URL");
    wvSecurity.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view,
                        final String urlStr) {
                    Log.i("URL", "::" + urlStr);
                    return false;
                }
    }

编辑::

好的,我要跟踪的URL使用POST方法,现在我的问题是如何跟踪POSTURL及其数据。还有一件事,我无法访问网页,所以我根本无法使用 GET 方法。请帮忙!!

我想当从页面点击超链接或发生某些重定向时,会调用此方法。所以确保这件事。

我认为您需要在"URL"上传递网址,这样就可以解决您的问题。

        wvSecurity = (WebView) findViewById(R.id.wvSecurity);
        wvSecurity.getSettings().setJavaScriptEnabled(true);
        wvSecurity.getSettings().setAllowContentAccess(true);
        wvSecurity.getSettings().setAllowUniversalAccessFromFileURLs(true);
        wvSecurity.getSettings().setBuiltInZoomControls(false);
        wvSecurity.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        wvSecurity.getSettings().setLoadWithOverviewMode(true);
        wvSecurity.getSettings().setDomStorageEnabled(true);
        wvSecurity.loadUrl("http://www.google.com");
        wvSecurity.setWebViewClient(new HelloWebViewClient());

    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            System.out.println("URL :: " + url);
            view.loadUrl(url);
            return true;
        }
        @Override
        public void onPageFinished(WebView view, final String url) {
        }
    }