【问题标题】:Android WebView does not start standard browser on link click - shouldOverrideUrlLoading has no effectAndroid WebView 在链接点击时不启动标准浏览器 - shouldOverrideUrlLoading 无效
【发布时间】:2013-02-10 15:43:50
【问题描述】:

在我的 Android 应用程序中,我有一个带有自定义 WebViewClient 的 WebView 元素。它通过onReceivedError() 显示错误页面,并为shouldOverrideUrlLoading() 返回false。

我希望 WebView 现在可以在外部浏览器中打开链接,而不是在 WebView 本身中打开链接,正如在 SO 上的许多其他帖子中所解释的那样。但是,这不起作用。它仍然会打开 WebView 中的每个链接。

这可能与我不通过 loadUrl() 而是通过 loadData() 加载内容并传递 html 字符串这一事实有关吗?

【问题讨论】:

    标签: java android webview webviewclient android-webview


    【解决方案1】:

    您必须使用意图在外部浏览器中启动 url。方法shouldOverrideUrlLoading() 是一个很好的候选:

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        Context context = view.getContext();
        Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    
        // Launch default browser
        context.startActivity(browserIntent);
    
        return true;
    }
    

    【讨论】:

    • 就是这样!完美运行。
    猜你喜欢
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 2011-05-12
    • 2011-12-06
    • 2011-11-15
    • 1970-01-01
    相关资源
    最近更新 更多