Android WebView无法在链接点击时启动标准浏览器 - shouldOverrideUrlLoading无效

时间:2013-02-10 15:43:50

标签: java android webview webviewclient android-webview

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

我希望WebView现在能够在外部浏览器中打开链接,而不是在WebView本身中打开链接,因为SO上的许多其他帖子对此进行了解释。但是,这不起作用。它仍会打开WebView中的每个链接。

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

1 个答案:

答案 0 :(得分:4)

您必须使用意图在外部浏览器中启动网址。方法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;
}