【问题标题】:shouldOverrideUrlLoading() never gets calledshouldOverrideUrlLoading() 永远不会被调用
【发布时间】:2012-09-18 13:51:17
【问题描述】:

如果我单击 web 视图中的链接,shouldOverrideUrlLoading() 永远不会被调用。 (它不显示吐司或记录任何内容)。我也尝试过 onPageFinished 并且它也没有被调用。我阅读了其他用户遇到问题的帖子,这些问题不仅有时会被调用,但在我的情况下它被完全忽略了。

    webview = new WebView(MyActivity.this);

    webview.getSettings().setBuiltInZoomControls(true);
    webview.getSettings().setDisplayZoomControls(false);
    webview.loadData(Html.getHtml(), "text/html", "UTF-8");
    webview.getSettings().setJavaScriptEnabled(true);
    webview.setWebViewClient(new WebViewClient() {

        @Override
        public boolean  shouldOverrideUrlLoading(WebView view, String url) {
            new M("shouldOverrideUrlLoading",getApplicationContext());
            Log.v("ESSE3", "shouldOverrideUrlLoading()");

            System.out.println(url);

            System.out.println(Html.getHtml());
            webview.loadData(Html.getHtml(), "text/html", "UTF-8");
                            return true;

        }
    });
    webview.setWebViewClient(new WebViewClient());
    setContentView(webview);

尝试启用/不启用 javascript 或在方法中返回 true 或 false。

【问题讨论】:

    标签: android webview android-webview


    【解决方案1】:

    您拨打setWebViewClient() 两次。一次使用您的覆盖方法,一次使用空的WebViewClient!这就是你的方法没有被调用的原因。

    webview.setWebViewClient(new WebViewClient() {
    
        @Override
        public boolean  shouldOverrideUrlLoading(WebView view, String url) {
            ....
        }
    });
    webview.setWebViewClient(new WebViewClient());
    

    【讨论】:

      猜你喜欢
      • 2012-10-27
      • 2013-10-12
      • 2012-03-27
      • 2013-08-29
      • 2013-11-03
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      • 2015-10-15
      相关资源
      最近更新 更多