2

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 を返したりしました。

4

1 に答える 1

8

setWebViewClient()あなたは二度電話します。1回はオーバーライドメソッドを使用し、もう1回は空のメソッドを使用しますWebViewClient。そのため、メソッドは呼び出されません。

webview.setWebViewClient(new WebViewClient() {

    @Override
    public boolean  shouldOverrideUrlLoading(WebView view, String url) {
        ....
    }
});
webview.setWebViewClient(new WebViewClient());
于 2012-09-18T14:23:37.337 に答える