【问题标题】:Android WebView http links opens Chrome browser with 2 tabs to same urlAndroid WebView http 链接打开 Chrome 浏览器,带有 2 个标签到相同的 url
【发布时间】:2012-11-07 00:51:08
【问题描述】:

我的应用中有一个显示本地 html 文件的 WebView。我正在使用 shouldOverrideUrlLoading() 方法处理其中的 PDF 文件的链接,但是通过这样做,页面上的 http:// 链接现在正在 WebView 中加载,而不是在设备的浏览器中。

下面的代码可以识别 pdf 文件,并且可以正常工作,但是当我单击外部 url 时,它会在 chrome 浏览器中打开两个选项卡,指向相同的 url。我怎么只能打开一个?

private class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.contains(".pdf")) {
            // Remove the file:///android_asset/ text in url
            String tmpUrl = url.replace("file:///android_asset/", "");
            PdfHandler pdf = new PdfHandler(mContext);
            pdf.openPdf(tmpUrl);
            return true;
        }
        else{
            // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            startActivity(intent);
            return true;
        }
    }
}

谢谢

【问题讨论】:

  • 请问有人有什么建议吗?

标签: android webview


【解决方案1】:

答案是在启动浏览器的Activity中加入这个标志:

intent.putExtra(Browser.EXTRA_APPLICATION_ID, mContext.getPackageName());

这会强制浏览器始终在我的应用程序创建的选项卡中打开一个链接

【讨论】:

    猜你喜欢
    • 2021-09-23
    • 2014-03-12
    • 2011-07-26
    • 2015-12-09
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 2013-08-13
    相关资源
    最近更新 更多