shouldOverrideUrlLoading()永远不会被调用

Hoc*_*osc 1 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);
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*ser 6

你打了setWebViewClient()两次电话.一旦使用覆盖方法,一次使用空WebViewClient!这就是你的方法没有被调用的原因.

webview.setWebViewClient(new WebViewClient() {

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