shouldoverrideurlloading不称为Webview Android

时间:2015-01-16 08:16:46

标签: javascript android android-webview

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

以下是我使用过的代码:

    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方法,现在我的问题是如何跟踪POST URL及其数据。有一点,我没有访问网页,所以我只是不能去GET方法。请帮助!!!

2 个答案:

答案 0 :(得分:1)

我猜这个方法在从页面轻敲超链接或发生某些重定向时被调用。所以要确保这件事。

答案 1 :(得分:0)

我认为您需要在“网址”上传递网址,以便解决您的问题。

        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) {
        }
    }