Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不应将OverrideUrlLoading称为Webview Android_Javascript_Android_Android Webview - Fatal编程技术网

Javascript 不应将OverrideUrlLoading称为Webview Android

Javascript 不应将OverrideUrlLoading称为Webview Android,javascript,android,android-webview,Javascript,Android,Android Webview,首先,这篇文章可能看起来像是其他问题的复制品,但我已经研究了很多问题,但发现它们没有帮助。 现在我的问题是,我正在Webview中加载一个URL,然后我想跟踪Webview上每个事件的URL,所以我为Webview设置了WebviewClient,并重写了shouldoverrideurlloading方法,但在第一个事件之后,shouldoverrideurlloading没有被调用。(第一次工作) 以下是我使用的代码: wvSecurity = (WebView) findViewB

首先,这篇文章可能看起来像是其他问题的复制品,但我已经研究了很多问题,但发现它们没有帮助。 现在我的问题是,我正在Webview中加载一个URL,然后我想跟踪Webview上每个事件的URL,所以我为Webview设置了WebviewClient,并重写了shouldoverrideurlloading方法,但在第一个事件之后,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方法。请帮忙

我猜当从页面点击超链接或发生重定向时,会调用此方法。所以要确保这一点。

我认为您需要在“url”上传递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) {
        }
    }

在从
shouldOverrideAllowing
返回
true
后,您是否尝试过?是的,我尝试过,但没有尝试过。我在每天8-21点尝试过API@GOLDEE抱歉,最后的评论误导了文档。你有什么要求?得到或张贴或其他?另外,你能把所有这些信息都放在问题里,这样我们就不会污染评论了吗?有什么可以抓住帖子的Url吗@RGRAHAMPLESE不要对从
shouldOverrideUrlLoading
获取的url调用loadUrl,因为对于具有非https方案的子帧也会调用该回调。如果您转到一个类似于您的代码的页面,那么最终将调用view.loadUrl('tel:1234'),并且您将显示一个错误页面,因为webview不知道如何加载tel:URL。您不应该调用loadUrl(url)并返回true,而应该从shouldOverrideUrlLoading返回false。