shouldOverrideUrlLoading()永远不会被调用

时间:2012-09-18 13:51:17

标签: android webview android-webview

如果单击webview中的链接,则永远不会调用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。

1 个答案:

答案 0 :(得分:6)

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

webview.setWebViewClient(new WebViewClient() {

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