链接等于BaseURL的Android WebView loadDataWithBaseURL工作不正常

时间:2013-03-29 09:33:23

标签: android webview href

我使用

将HTML加载到我的WebView
this.webViewer.loadDataWithBaseURL(BASE_URL, completeNewsTemplate,
                "text/html", "UTF-8", null);

其中BASE_URL =“http://www.example.ru”我将它用于WebView加载带有相对图像的图像src的

如果在HTML中,我得到像

这样的href链接
<a href="http://www.example.ru" target="_blank">Example</a>

然后它只是重新加载当前的webview,而target属性确实为打开新窗口做了任何事情。

如何在新窗口中打开webview链接?

1 个答案:

答案 0 :(得分:1)

这是解决方案。

如果您的链接等于基本网址,则WebView认为您只想使用当前页面。

您可以尝试抓住它

webViewer.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                System.out
                    .println("DetailViewActivity.onCreate(...).new WebViewClient() {...}.onPageStarted()");
                    super.onPageStarted(view, url, favicon);

            }

            @Override
            public void onPageFinished(WebView view, String url) {
                            System.out
                    .println("DetailViewActivity.onCreate(...).new WebViewClient() {...}.onPageFinished()");
                super.onPageFinished(view, url);

            }

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
            System.out
                    .println("DetailViewActivity.onCreate(...).new WebViewClient() {...}.shouldOverrideUrlLoading()");
                return false;

            }

        });

但是,然后点击你在webView中的链接你永远不会被你的base_url解雇 shouldOverrideUrlLoading onPageStarted onPageFinished

所以我的solition用于基本网址,而没有 www 前缀的其他网域。

此处示例如果您在域名www.example.com上使用base url example.com